Compare commits

...

1455 Commits

Author SHA1 Message Date
github-actions[bot]
f5956f1b2e release(cli): 1.34.5 (#3655)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-06 15:34:31 +01:00
David Barroso
f3b397b0d8 chore(cli): bump nhost/dashboard to 2.41.0 (#3669)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-06 13:42:32 +01:00
David Barroso
b7940087ee chore(cli): udpate certs and schema (#3675) 2025-11-06 13:04:09 +01:00
github-actions[bot]
3dae655858 release(services/storage): 0.9.1 (#3673)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-06 11:42:33 +01:00
David Barroso
2aa269734b fix(storage): format date-time headers with RFC2822 (#3672) 2025-11-06 11:40:11 +01:00
David Barroso
bc91836f83 chore(ci): replace the correct string on .github/workflows/dashboard_wf_release.yaml (#3670)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-05 10:26:16 +01:00
github-actions[bot]
6d8b243571 release(dashboard): 2.41.0 (#3647)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-05 08:26:31 +01:00
David Barroso
c9967b1a6d feat(dashboard): get github repositories from github itself (#3640)
Co-authored-by: David BM <correodelnino@gmail.com>
2025-11-04 16:46:01 +01:00
github-actions[bot]
7f72aadff9 release(packages/nhost-js): 4.1.0 (#3586)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-04 16:21:25 +01:00
github-actions[bot]
8faf9565bb release(services/storage): 0.9.0 (#3654)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-04 16:21:16 +01:00
github-actions[bot]
7ac3f12852 release(services/auth): 0.43.0 (#3667)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-11-04 16:21:10 +01:00
David Barroso
184a3ed190 feat(internal/lib): common oapi middleware for go services (#3663) 2025-11-04 16:17:41 +01:00
David Barroso
372c4e32d4 fix(ci): match the version exactly to avoid matching on pre-releases (#3666) 2025-11-04 15:54:01 +01:00
David Barroso
a68d261d8e fix(nhost-js): improvements to Session guard to avoid conflict with ProviderSession (#3662) 2025-11-04 10:53:37 +01:00
David Barroso
55bda3f56b fix(auth): dont mutate client URL (#3660) 2025-11-03 10:56:14 +01:00
David Barroso
2311e1dd77 feat(auth): if the callback state is wrong send back to the redirectTo as provider_state (#3649) 2025-10-31 12:13:35 +01:00
David Barroso
824ee142c4 chore(nixops): set system libraries consistently on darwin (#3656) 2025-10-31 11:06:38 +01:00
David Barroso
c662d063a7 chore(nixops): bump go to 1.25.3 and nixpkgs due to CVEs (#3652) 2025-10-30 16:37:52 +01:00
David Barroso
b518132349 chore(nhost-js): regenerate types (#3648) 2025-10-29 12:50:22 +01:00
David BM
b677d3768f fix(dashboard): update SQL editor to use correct hasura migrations API URL (#3645) 2025-10-28 15:58:25 +01:00
David Barroso
51ec151752 feat(auth): added endpoints to retrieve and refresh oauth2 providers' tokens (#3614) 2025-10-28 12:50:30 +01:00
David Barroso
223322d654 fix(ci): run pull_request_target workflows against PR (#3646) 2025-10-28 11:51:55 +01:00
David Barroso
add2c20c95 chore(nixops): bump nhost-cli (#3641) 2025-10-28 10:05:47 +01:00
github-actions[bot]
961bc5feea release(cli): 1.34.4 (#3644)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-28 09:46:18 +01:00
David Barroso
0ca89974b9 fix(cli): update NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL correctly (#3643) 2025-10-28 09:44:14 +01:00
github-actions[bot]
e8d52859a3 release(cli): 1.34.3 (#3624)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-27 16:05:01 +01:00
David Barroso
67740ebe3d chore(cli): bump nhost/dashboard to 2.40.0 (#3629)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-27 16:03:07 +01:00
github-actions[bot]
d6f7b01aee release(dashboard): 2.40.0 (#3631)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-27 15:23:14 +01:00
dependabot[bot]
0fc65df78d chore(ci): bump actions/upload-artifact from 4 to 5 (#3638)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 09:50:12 +01:00
dependabot[bot]
52e3db7f61 chore(ci): bump actions/download-artifact from 5 to 6 (#3639)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 08:51:05 +01:00
David Barroso
235449d68c chore(docs): update guidelines on the use of AI for contributions (#3637) 2025-10-27 08:46:10 +01:00
Jason Overmier
323834d212 feat(dashboard): allow configuring CSP header (#3627)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-10-23 12:05:04 +02:00
David Barroso
f7bd250f73 chore(ci): changed pull_request to pull_request_target for access to secrets (#3632) 2025-10-23 11:15:29 +02:00
David BM
579f9dbf31 chore(dashboard): various improvements to support ticket page (#3630)
Co-authored-by: robertkasza <robert.kasza@bishop-co.com>
2025-10-23 09:38:45 +02:00
github-actions[bot]
9f2b93d44b release(dashboard): 2.39.0 (#3600)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-22 10:59:29 +02:00
David Barroso
1aeef26ec6 feat(dashboard): move zendesk request to API route (#3628) 2025-10-22 10:54:42 +02:00
David Barroso
749bb4e637 feat(nhost-js): added various middlewares to work with headers and customizable createNhostClient (#3612) 2025-10-22 10:32:23 +02:00
David Barroso
accabc83f7 chore(cli): update schema (#3622) 2025-10-21 16:53:07 +02:00
David Barroso
8c127d7b6b chore(docs): fix broken link in openapi spec and minor mistakes in postmark integration info (#3621) 2025-10-21 12:32:44 +02:00
David BM
f9c614ef99 chore(deps): update Vite to address security advisory (#3620) 2025-10-21 12:18:29 +02:00
David Barroso
1d183f7fc4 feat(auth): encrypt TOTP secret (#3619) 2025-10-21 09:04:31 +02:00
github-actions[bot]
46e740f060 release(cli): 1.34.2 (#3603)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-20 14:30:47 +02:00
David Barroso
0d30ab4eec chore(cli): update schema (#3613) 2025-10-20 14:27:49 +02:00
github-actions[bot]
d5fd3cb59c release(services/auth): 0.42.4 (#3618)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-20 13:25:21 +02:00
David Barroso
f36d360b9e fix(auth): apply relationships on new projects (#3617) 2025-10-20 13:23:33 +02:00
github-actions[bot]
61af5087fd release(services/auth): 0.42.3 (#3608)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-20 12:42:03 +02:00
David Barroso
7429d8ae3f fix(auth): always apply expected metadata (#3616) 2025-10-20 12:37:52 +02:00
github-actions[bot]
8ce9705b17 release(services/storage): 0.8.2 (#3585)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-15 14:51:31 +02:00
David Barroso
5b53c568ad fix(ci): set config.custom_model_max_tokens (#3611) 2025-10-14 13:31:28 +02:00
David Barroso
24c5db943d feat(nhost-js): added pushChainFunction to functions and graphql clients (#3610) 2025-10-14 13:30:07 +02:00
David BM
ea87b81db6 chore(docs): add links to local development and cloud development (#3609)
Co-authored-by: robertkasza <robert.kasza@bishop-co.com>
2025-10-14 11:56:42 +02:00
robertkasza
226a22e322 fix(dashboard): Remove vite-plugin-dts (#3607) 2025-10-14 11:27:46 +02:00
David Barroso
9c58b4307a chore(storage): migrate to urfave and slog libraries (#3606) 2025-10-14 10:17:20 +02:00
robertkasza
7ecfa41790 fix(dashboard): Run audit and lint in dashboard (#3578) 2025-10-14 08:49:42 +02:00
David Barroso
2633747992 chore(cli): minor fix to download script when specifying version (#3602) 2025-10-13 15:26:04 +02:00
github-actions[bot]
3b107a386e release(services/auth): 0.42.2 (#3598)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-13 14:49:48 +02:00
David Barroso
b5ed48a832 chore(auth): add wget to docker image (#3601) 2025-10-13 14:45:58 +02:00
David BM
363730ab20 chore(dashboard): cleanup e2e remote schemas test before run (#3581) 2025-10-13 12:24:11 +02:00
robertkasza
9c77c4be51 fix(dashboard): fix flaky e2e tests (#3536) 2025-10-13 11:39:34 +02:00
github-actions[bot]
c7c6de5258 release(cli): 1.34.1 (#3577)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-13 09:52:42 +02:00
David Barroso
1e7f4df883 fix(cli): workaround os.Rename issues when src and dst are on different partitions (#3599) 2025-10-13 09:48:37 +02:00
David Barroso
0c8e5ac55f chore(docs): udpated README.md and CONTRIBUTING.md (#3587) 2025-10-13 09:04:28 +02:00
David Barroso
5b809f6ac9 chore(nhost-js): generate code from local API definitions (#3583) 2025-10-10 13:15:05 +02:00
David Barroso
0cadc0e5ba chore(auth): change some references to deprecated hasura-auth (#3584) 2025-10-10 12:36:42 +02:00
David Barroso
4c53f4a83b chore(auth): enabled CI (#3582) 2025-10-10 12:25:58 +02:00
David Barroso
9607e9fbad feat(auth): import service hasura-auth into services/auth (#3580) 2025-10-10 07:20:03 +02:00
David Barroso
19506d5dd8 fix and clean build after import 2025-10-09 16:49:44 +02:00
David Barroso
ac4132ec5d Merge branch 'auth-import' into auth 2025-10-09 16:15:14 +02:00
David Barroso
2e09723d70 Move hasura-auth files into services/auth subdirectory 2025-10-09 16:14:02 +02:00
David Barroso
25ef074a7f fix(cli): remove references to mcp-nhost (#3575) 2025-10-09 12:27:21 +02:00
github-actions[bot]
6ad1cd1900 release(cli): 1.34.0 (#3553)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-09 11:48:54 +02:00
David Barroso
5c5223d871 chore(cli): bump nhost/dashboard to 2.38.4 (#3539)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-09 11:39:23 +02:00
github-actions[bot]
00ef639455 release(dashboard): 2.38.4 (#3574)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-09 10:38:57 +02:00
David Barroso
a54da9c072 fix(dashboard): remove NODE_ENV from restricted env vars (#3573) 2025-10-09 10:36:25 +02:00
David Barroso
63edfa2600 feat(cli): MCP refactor and documentation prior to official release (#3571) 2025-10-09 08:55:10 +02:00
David Barroso
381baf2e51 feat(docs): added react urql guide (#3570) 2025-10-08 11:02:50 +02:00
dependabot[bot]
951ce168e8 chore(ci): bump github/codeql-action from 3 to 4 (#3569)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 08:34:39 +02:00
github-actions[bot]
be8f4e5b1b release(dashboard): 2.38.3 (#3563)
Co-authored-by: dbm03 <dbm03@users.noreply.github.com>
2025-10-07 15:03:40 +02:00
David BM
010573cc31 fix(dashboard): improve remote schema preview search (#3558) 2025-10-07 14:37:21 +02:00
David BM
629bbe7a78 fix(dashboard): remote schema edit graphql customizations, default value for root field namespace is empty (#3565) 2025-10-06 14:56:46 +02:00
Isaac Johnston
57a69c16dc feat: add Modica Group SMS provider support (#676) 2025-10-06 10:12:47 +02:00
David BM
166889be1b fix(dashboard): show paused banner in Run page (#3564) 2025-10-06 10:04:30 +02:00
David BM
c80f6292c6 fix(dashboard): show paused banner in remote schemas/database page if project is paused (#3557) 2025-10-06 08:59:49 +02:00
David Barroso
5c7a6788b4 feat(cli): mcp: added support for environment variables in the configuration (#3556) 2025-10-03 10:24:38 +02:00
David Barroso
6ae4e17ffe feat(cli): mcp: move configuration to .nhost folder and integrate cloud credentials (#3555) 2025-10-03 10:17:41 +02:00
David Barroso
515fde79a3 chore(nixops): update nhost-cli (#3554) 2025-10-02 16:59:16 +02:00
David Barroso
545d0e33d9 feat(cli): added mcp server functionality from mcp-nhost (#3550) 2025-10-02 14:53:55 +02:00
github-actions[bot]
9d1853742e release(cli): 1.33.0 (#3547)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-02 14:32:21 +02:00
David Barroso
c0beb07b77 chore(cli): update certs (#3552) 2025-10-02 14:29:55 +02:00
David Barroso
3a79db6277 fix(cli): fix breaking change in go-getter dependency (#3551) 2025-10-02 14:03:00 +02:00
David Barroso
3378739967 fix(cli): disable tls on AUTH_SERVER_URL when auth uses custom port (#3549) 2025-10-02 11:13:05 +02:00
David Barroso
e31ac82a55 fix(examples/docker-compose): added missing .env.example (#3548) 2025-10-02 10:55:26 +02:00
David Barroso
bdd88161c6 feat(cli): migrate from urfave/v2 to urfave/v3 (#3545) 2025-10-02 09:13:35 +02:00
Nuno Pato
21856df37b fix: allow adding first security key when claim mode is required (#677)
### **PR Type**
Bug fix, Tests, Enhancement


___

### **Description**
- Pass request path into elevated claim verifier

- Bypass elevated claim for first security key add/verify

- Extract URL.Path in MiddlewareFunc before verify

- Add tests for required mode bypass scenarios


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Incoming HTTP request"] -- "extract path" --> B["MiddlewareFunc"]
  B -- "pass path & token" --> C["verifyElevatedClaim"]
  C -- "mode=required & no keys & add/verify" --> D["allow request"]
  C -- "else" --> E["enforce elevated claim"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>jwt.go</strong><dd><code>Support requestPath in
elevated claim checks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/jwt.go

<ul><li>Added <code>requestPath</code> parameter to
<code>verifyElevatedClaim</code><br> <li> Moved userID parse before mode
checks<br> <li> Bypass claim when required mode & no keys on add/verify
endpoints<br> <li> Extract <code>Request.URL.Path</code> in
<code>MiddlewareFunc</code></ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/677/files#diff-2b63f932811bd25d3716aca99c9a61a691d412f94ab1ce61d85768deb84d3dd9">+23/-12</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>jwt_test.go</strong><dd><code>Add tests for bypassing
elevated claim</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/jwt_test.go

<ul><li>Imported <code>net/url</code> for URL path setup<br> <li> Added
tests for add/verify bypass in required mode<br> <li> Mocked
<code>CountSecurityKeysUser</code> expectations</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/677/files#diff-1bb7d62cd5e7e79b93a2ac196e721568eb7356b61e3751d2ef4781f5a725ef1d">+89/-0</a>&nbsp;
&nbsp; </td>

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

</details>

___

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-10-01 11:06:44 +00:00
github-actions[bot]
17e8acb368 release(cli): 1.32.2 (#3544)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-10-01 08:40:31 +02:00
David Barroso
a2bc1fee6f chore(cli): remove hasura- prefix from auth/storage images (#3538) 2025-10-01 08:33:06 +02:00
github-actions[bot]
ba2ac461e1 release(dashboard): 2.38.2 (#3541)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-09-30 17:01:40 +02:00
github-actions[bot]
d2cc79e838 release(services/storage): 0.8.1 (#3543)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-09-30 16:45:02 +02:00
David Barroso
31a30cd460 fix(storage): pass buildVersion correctly (#3542) 2025-09-30 16:39:23 +02:00
David BM
f5ecbdac22 fix(dashboard): update remote schemas url tooltip (#3540) 2025-09-30 15:11:43 +02:00
github-actions[bot]
565aee6d34 release(dashboard): 2.38.1 (#3535)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-09-30 13:21:54 +02:00
David Barroso
47013da462 chore(ci): validate PR title (#3537) 2025-09-30 13:20:02 +02:00
dependabot[bot]
2e701456d3 chore(ci): bump actions/checkout from 4 to 5 (#3526)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-09-30 11:41:42 +02:00
dependabot[bot]
f08bbc62f6 chore(ci): bump aws-actions/configure-aws-credentials from 4 to 5 (#3522)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-09-30 11:40:09 +02:00
robertkasza
93c233deb0 fix (dashboard): delay generating auth service url when creating users (#3530) 2025-09-30 09:22:46 +02:00
David Barroso
ff2a84aa37 chore(ci): use variables in gen_ai_review workflow to configure models (#3534) 2025-09-30 08:45:56 +02:00
github-actions[bot]
3ca082d368 release(cli): 1.32.1 (#3533)
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-09-29 17:51:37 +02:00
David Barroso
cec16c6b89 chore(cli): update schema (#3529) 2025-09-29 17:48:59 +02:00
David Barroso
543f2c2b0e fix(nixops): export correctly (#3531) 2025-09-29 17:20:51 +02:00
David Barroso
53ac9263c1 fix(ci): specify base when bumping the dashboard in the cli (#3532) 2025-09-29 14:46:29 +02:00
github-actions[bot]
81b304a715 release(dashboard): 2.38.0 (#3503)
Co-authored-by: robertkasza <robertkasza@users.noreply.github.com>
2025-09-29 13:44:58 +02:00
robertkasza
ac9956bcdb feat(dashboard): datatable column header redesign (#3500) 2025-09-29 13:34:38 +02:00
David Barroso
7d2bc4c06e chore(ci): minor improvements to the ci (#3527) 2025-09-29 12:02:04 +02:00
David Barroso
48ef43202c feat(docs): added links to react-apollo and react-query guides (#3528) 2025-09-29 10:28:45 +02:00
David BM
e6ae494336 feat(dashboard): add remote schemas (#3299)
Co-authored-by: David Barroso Murcia <davidbm@air-m4.local>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-09-26 16:14:34 +02:00
David Barroso
092e98358f chore(ci): implement storage releases (#3525) 2025-09-26 15:03:29 +02:00
dependabot[bot]
dd945daa1a chore(ci): bump nixbuild/nix-quick-install-action from 26 to 34 (#3524) 2025-09-26 13:52:23 +02:00
dependabot[bot]
0fe38e206b chore(ci): bump github/codeql-action from 2 to 3 (#3523) 2025-09-26 13:52:14 +02:00
dependabot[bot]
373657339c chore(ci): bump actions/checkout from 4 to 5 (#3521) 2025-09-26 13:52:02 +02:00
dependabot[bot]
3833158107 chore(ci): bump peter-evans/create-pull-request from 6 to 7 (#3520) 2025-09-26 13:51:55 +02:00
David Barroso
4c93094e4d chore(ci): enable dependabot for github actions (#3519) 2025-09-26 13:35:03 +02:00
David Barroso
2ba53e4fef chore(ci): minor improvements (#3518) 2025-09-26 13:28:01 +02:00
David Barroso
23bd2f8d4f chore(storage): integrate storage code into nhost/nhost (#3515) 2025-09-26 12:46:35 +02:00
robertkasza
a14d1e4f22 chore(dashboard): fix defects in basetable form and add comment to columns (#3475) 2025-09-26 11:28:33 +02:00
David Barroso
7509bd8a96 Merge branch 'storage' 2025-09-26 09:31:47 +02:00
David Barroso
0c820d4173 feat(cli): import nhost/cli into ./cli/ (#3506)
Co-authored-by: nhost-build <98952681+nhost-build@users.noreply.github.com>
Co-authored-by: szilarddoro <szilarddoro@users.noreply.github.com>
Co-authored-by: nunopato <nunopato@users.noreply.github.com>
Co-authored-by: Nuno Pato <nunopato@gmail.com>
Co-authored-by: Szilárd Dóró <doroszilard@gmail.com>
Co-authored-by: Alex Duval <alexduval71@gmail.com>
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: constance-seedstash <123984067+constance-seedstash@users.noreply.github.com>
Co-authored-by: onehassan <onehassan@users.noreply.github.com>
Co-authored-by: Ibrahim Ahmed <abeahmed2@gmail.com>
Co-authored-by: Nestor Manrique <nes.manrique@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddhant <94226898+S1D007@users.noreply.github.com>
Co-authored-by: dbm03 <dbm03@users.noreply.github.com>
Co-authored-by: Rene Cruces <52537668+renecruces@users.noreply.github.com>
Co-authored-by: David BM <correodelnino@gmail.com>
Co-authored-by: Nikhil Iyer <iyer.h.nikhil@gmail.com>
2025-09-26 08:37:28 +02:00
David BM
72401ae1a7 chore(ci): add e2e remote schema name repository variable to CI workflow (#3502) 2025-09-25 19:36:16 +02:00
David Barroso
0b560dcb52 feat(storage): import nhost/hasura-storage into ./services/storage/ 2025-09-25 16:56:32 +02:00
David Barroso
51619dbf87 feat: generate server boilerplate from openapi schema (#245) 2025-09-25 16:33:50 +02:00
David Barroso
73b60a14e5 fix(ci): check for tag using the correct format (#3495)
### **PR Type**
Bug fix


___

### **Description**
- Declare `TAG_NAME` from make release-tag-name

- Use `TAG_NAME` in git tag existence check

- Update echo messages to reference correct tag


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Compute TAG_NAME"] --> B["Compute VERSION"]
  B --> C["Check if tag exists"]
  C -->|exists| D["Skip release preparation"]
  C -->|not exists| E["Proceed with release"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ci_update_changelog.yaml</strong><dd><code>Use TAG_NAME
for tag existence check</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>

.github/workflows/ci_update_changelog.yaml

<ul><li>Declare <code>TAG_NAME</code> variable using make
release-tag-name<br> <li> Replace <code>${{ matrix.project }}</code>
with <code>TAG_NAME</code> in grep<br> <li> Update echo commands to
reference <code>TAG_NAME</code> correctly</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3495/files#diff-399add8ac39ae1cd7ae2f4f8ceb89290f6f43e25b7b2c499da61dd68a5cf2f16">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-24 17:09:16 +02:00
David Barroso
f4ce851abe fix(ci): fixed ci_create_release.yaml (#3493)
### **PR Type**
Bug fix


___

### **Description**
- Add `cd $PROJECT` before make in CI workflow

- Ensure `make release-tag-name` runs in correct directory


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Extract VERSION"] --> B["Change to project directory"]
  B --> C["Run make release-tag-name"]
  C --> D["Set project_name output"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ci_create_release.yaml</strong><dd><code>Change to
project directory before make</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/ci_create_release.yaml

<ul><li>Insert <code>cd $PROJECT</code> before <code>make
release-tag-name</code><br> <li> Ensure <code>make</code> runs in the
repository subdirectory</ul>


</details>


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

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

</details>

___
2025-09-24 16:55:35 +02:00
github-actions[bot]
cc88dbc4bd release(packages/nhost-js): nhost/nhost-js (#3491)
Automated release preparation for packages/nhost-js version
nhost/nhost-js

Changes:
- Updated CHANGELOG.md

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2025-09-24 15:47:51 +02:00
David Barroso
a6a5ecdad9 chore(docs): update README (#3492)
### **PR Type**
Documentation


___

### **Description**
- Update root README code examples

- Switch to `createClient` API and adjust auth methods

- Change GraphQL request syntax to object form

- Simplify install commands in package README


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>README.md</strong><dd><code>Revise root README examples
and links</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

README.md

<ul><li>Changed code block language to TypeScript<br> <li> Replaced
<code>NhostClient</code> with <code>createClient</code> import<br> <li>
Updated auth and GraphQL usage methods<br> <li> Updated JS/TS client
link and removed integrations section</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3492/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5">+21/-25</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>README.md</strong><dd><code>Simplify installation
commands</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;
</dd></summary>
<hr>

packages/nhost-js/README.md

- Removed `@beta` tag from npm/yarn/pnpm install commands


</details>


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

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

</details>

___
2025-09-24 15:42:41 +02:00
David Barroso
069896c2d9 feat(ci): finalize release workflow for the dashboard (#3487)
### **PR Type**
Enhancement


___

### **Description**
- Refactor CI release job to dedicated dashboard workflow

- Add dashboard_release workflow orchestrating release steps
  - deploy-vercel, build_artifacts, push-docker, bump-cli

- Introduce reusable Docker push workflow with manifest support


___

### Diagram Walkthrough


```mermaid
flowchart LR
  CIREL["ci_release: dashboard job"] --> DASHREL["dashboard_release workflow"]
  DASHREL --> DV["deploy-vercel"]
  DASHREL --> BA["build_artifacts"]
  BA --> PD["push-docker"]
  PD --> BC["bump-cli"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ci_release.yaml</strong><dd><code>Use dedicated
dashboard_release workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/ci_release.yaml

<ul><li>swapped wf_deploy_vercel usage for dashboard_release<br> <li>
replaced ENVIRONMENT input with VERSION<br> <li> added GH_PAT secret to
dashboard job</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3487/files#diff-456777492a189272b53f8abd0ea4e8c333b25cf1673b8b109c0a1834d874bdb5">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>dashboard_release.yaml</strong><dd><code>Add
dashboard_release workflow file</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>

.github/workflows/dashboard_release.yaml

<ul><li>define workflow_call inputs and required secrets<br> <li>
orchestrate deploy-vercel, build_artifacts, push-docker, bump-cli<br>
<li> create CLI bump pull request via GH PAT</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_docker_push_image.yaml</strong><dd><code>Add
reusable Docker push workflow</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;
</dd></summary>
<hr>

.github/workflows/wf_docker_push_image.yaml

<ul><li>define Docker push reusable workflow inputs and secrets<br> <li>
checkout code, download artifacts, compute version<br> <li> push
multi-arch images and manifest to Docker registry</ul>


</details>


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

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
754541a24b chore(ci): release dashboard workflow (#3486)
### **PR Type**
Other


___

### **Description**
- Reset dashboard package version to dev


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>package.json</strong><dd><code>Reset dashboard package
version</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; </dd></summary>
<hr>

dashboard/package.json

- Bump version from 2.37.0 to 0.0.0-dev


</details>


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

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
e7978b0346 feat(ci): work on changelog and release process (#3485)
### **PR Type**
Enhancement


___

### **Description**
- Add CI release workflows
  - create, update, publish workflows

- Integrate git-cliff changelog automation

- Introduce PR template guidelines

- Remove outdated config files


___

### Diagram Walkthrough


```mermaid
flowchart LR
  PushMain["Push to main"] --> UpdateChangelog["ci_update_changelog"]
  UpdateChangelog --> ReleasePR["Release pull request"]
  ReleasePR --> CreateRelease["ci_create_release"]
  CreateRelease --> GitHubRelease["GitHub Release created"]
  GitHubRelease --> Deploy["ci_release deployment"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Configuration
changes</strong></td><td><details><summary>6 files</summary><table>
<tr>
<td><strong>CODEOWNERS</strong><dd><code>Remove outdated CODEOWNERS
configurations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-3d36a1bf06148bc6ba1ce2ed3d19de32ea708d955fed212c0d27c536f0bd4da7">+0/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>action.yaml</strong><dd><code>Remove dependency install
composite action</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-342d59190b4737ee45e2062eb625ada477bcea5b4a843b25900ad55d7982f200">+0/-59</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ci_create_release.yaml</strong><dd><code>Create release
workflow on PR merge</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-9f32bd5671fcb04c5f1b35ea33677c4704302536e0c4ff9e06b514dc9b3d4f0c">+90/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ci_release.yaml</strong><dd><code>Add post-release
deployment workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-456777492a189272b53f8abd0ea4e8c333b25cf1673b8b109c0a1834d874bdb5">+64/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ci_update_changelog.yaml</strong><dd><code>Add changelog
update workflow on push</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-399add8ac39ae1cd7ae2f4f8ceb89290f6f43e25b7b2c499da61dd68a5cf2f16">+90/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>cliff.toml</strong><dd><code>Add git-cliff
configuration</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-e1372c8b03c40942b5d828a90975054cb8aaed3b38189f434396f922ec41a584">+90/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>PULL_REQUEST_TEMPLATE.md</strong><dd><code>Add pull request
template guidelines</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-18813c86948efc57e661623d7ba48ff94325c9b5421ec9177f724922dd553a35">+39/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Build
config</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>general.makefile</strong><dd><code>Include release makefile
integration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-c9e82023881afc6d45e6190871a40f2d137adb43e368fc461560c74a50c15a5d">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>release.makefile</strong><dd><code>Add git-cliff changelog
targets</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-119f857b7a496c134136ef627cb83ba58b87363125b483fe25524ab66820dcd2">+25/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>3 files</summary><table>
<tr>
  <td><strong>dashboard_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-f500aa853d257ead7ba7e28d92191a2d18ab32a43c6e121d1e64454513a9de14">+0/-39</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>nhost-js_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-f89bdd0c84297962882877ff469844b0541e95cb6437c9247722704af02ca426">+0/-32</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>wf_check_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3485/files#diff-099ad6009f7d08d3b6534abe4abf8c8a75f6c3761d4117751fc35093affd7456">+0/-64</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
894cd29d6b chore (docs): address feedback and change reactnative tutorial to use blank template (#3481) 2025-09-24 14:50:55 +02:00
David Barroso
d570084d24 chore (docs): udpate graphql documentation to include example with variables (#3478)
### **PR Type**
Tests, Documentation


___

### **Description**
- Add GraphQL request test with variables support

- Update qql test to include variables option

- Extend SDK docstrings with variables usage section

- Enhance documentation with variables example


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>docstrings.test.ts</strong><dd><code>Enhance tests with
variables usage</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>

packages/nhost-js/src/graphql/__tests__/docstrings.test.ts

<ul><li>Added new "request with variables" test case<br> <li> Modified
qql test to pass variables in request<br> <li> Removed obsolete
commented test data</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3478/files#diff-c7b7dab18f108770bcff06dc83cc9a34a5ee72c5021a035129a264a968f7d5ff">+58/-39</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Document variables in
GraphQL client</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>

packages/nhost-js/src/graphql/index.ts

<ul><li>Inserted "Using Variables" section in SDK docstrings<br> <li>
Added includeCode references for variables examples<br> <li> Adjusted
snippet ranges for variable usage</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3478/files#diff-6124d7be08592679e7ba8ae19ab28f3fca0d9a8fcd04c62f130eb8038eeb29e4">+11/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>graphql.mdx</strong><dd><code>Add variables example to
user docs</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>

docs/reference/javascript/nhost-js/graphql.mdx

<ul><li>Added "Using Variables" section with code example<br> <li>
Demonstrated passing variables to GraphQL requests<br> <li> Updated qql
example to show variable usage</ul>


</details>


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

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
8c71dd9db9 feat (docs): add tutorials for supported frameworks (#3469)
### **PR Type**
Enhancement


___

### **Description**
- Add cross-framework Todos CRUD examples

- Introduce file upload/download tutorials

- Provide unified AuthProvider context implementations

- Include email templates and backend actions


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19
files</summary><table>
<tr>
<td><strong>Todos.tsx</strong><dd><code>Add web demo Todos CRUD
page</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-53f3b3d582fef21d5ec90cb590b73afcf09407071dba60883ed1ed7360955fc5">+648/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>todos.tsx</strong><dd><code>Add React Native tutorial
Todos</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3f6be5ef4f443091687addd404fe71f219498b9db7dea992d18d78b4f1b6ffa3">+561/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>commonStyles.ts</strong><dd><code>Add common React Native
tutorial styles</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-bf0de16179ecc80a8e88e223c890dc2c73c30b4a9b7cadd62e910ca015ce342b">+667/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Todos.tsx</strong><dd><code>Add React tutorial Todos
page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-be700e4847b0a745821f156c381e583097f2083123065a45a20611c2ba1876a7">+504/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>files.tsx</strong><dd><code>Add React Native tutorial file
upload</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-d116805053a943f271a3297d06d14dba39c0f5775080e67e1e9e2778c176e9da">+454/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Files.tsx</strong><dd><code>Add React tutorial Files
page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-cdbca4ed68690df84463df7765dff52c85a60502f175c19519c8b42474e9282c">+404/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>signup.tsx</strong><dd><code>Enhance signup flow with email
verification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-262b09b9dd7234cad96fe092d7131a23451c9e50b98c126c9e36599b3a127ac6">+185/-141</a></td>

</tr>

<tr>
<td><strong>FilesClient.tsx</strong><dd><code>Add Next.js Files client
component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ea74386f232b9ae7e7957ab4eb1f0d1d6076b338173e8b1e917369fb7f1b39bb">+359/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>TodosClient.tsx</strong><dd><code>Add Next.js Todos client
component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-96efb4db6bd61a7faee3c383e77b092eccee1a1876770c36691e7356268cfad4">+368/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AuthProvider.tsx</strong><dd><code>Implement React
AuthProvider context</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-4cc7e41420d71d448eeec4f77043e0c5bff2c606986439454dade5ffcd433e33">+174/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AuthProvider.tsx</strong><dd><code>Implement RN AuthProvider
context</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-93f9f27a35d0039a64cd6889a296d04d37542aa5a777925e61e8e60ee5a6d744">+148/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>actions.ts</strong><dd><code>Add Next.js server actions for
Todos</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-76d57097940d3043c8e0ab29761767861b78fe86ab8a90a2d8209f1818131d31">+223/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>signup.tsx</strong><dd><code>Add RN signup tutorial
screen</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-153c2f0bf6b3744bb84b95e356dd78c8771206a1b22218bc4c6f90641e4143ad">+183/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>explore.tsx</strong><dd><code>Add RN tutorial Explore
screen</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-980313b6c7f75f2ecd45fc476895bea122364d000f5988e21564bf5db73d7f57">+125/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>route.ts</strong><dd><code>Add Next.js file download
route</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5c39cd02d478ad625a7cdb6df3f7b6d20a76f40488636fdd87282c66174b2bd8">+57/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SignUp.tsx</strong><dd><code>Enhance demo signup with
verification state</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-75657efa0e1c29f59692ced3cd90e9c734836977900dc64015dd5d217bb263da">+38/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SignUpForm.tsx</strong><dd><code>Add Next.js signup client
form</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-9034cd412c47033a01e604a8250984aa1d1ecefc9884b79ebd7f7f3af17e3167">+89/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SignInForm.tsx</strong><dd><code>Add Next.js signin client
form</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-c276aadee4507d515832909164d447c3c1a4870277d0adbd1f7e836f7c66259e">+75/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>server.tsx</strong><dd><code>Add server Nhost client for
Next.js</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-9d650defc223584e4aa06ddbf1d9a97c47a5a7ec4c9589a72ac7ea5369853400">+89/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>_layout.tsx</strong><dd><code>Configure RN tutorial tab
navigation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-c3b0bac088aef9f1a2d5cd2f4b51dd19fb301034668a062860a1e6a3512c15c9">+39/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>101 files</summary><table>
<tr>
  <td><strong>examples_tutorials_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-745712dc409289d30fe4caa74de567df9cc9fac97750ae5566f93a51e48bf539">+94/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>docs.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-873ce17c654718debe2fe308a2f2279bde8663686423c51f97fab2dd0722b8d9">+52/-7</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8c9b35da559a5de5fe14ee078573e8d487453e26ed760c03ffd7f0ad476ca24d">+5/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>nextjs.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a5210d45e7d33a57d43078dbe2a2ccbf0667b157291fd92c3986092d7d33ab9c">+0/-508</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>1-introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-35413705a524a3eb2c7d096daef02d660b479fbc288674aa260e3f159988652b">+116/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>2-protected-routes.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-d901b3a6d8a96e3070f27afb934c34365aa79aeee1505238de2cb77a9ffd8546">+1364/-0</a></td>

</tr>

<tr>
  <td><strong>3-user-authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-7b96576ad1b1b6b8e50dd3889e24df391662df1b7b51a111f0239f655135939f">+804/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>4-graphql-operations.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-16906637a292d22c018167d45f2da67a17fe73155ca161de91c3b329fee9d399">+958/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>5-file-uploads.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-d6153781dbf251499f2ffeeb707102349776d788859c2da0f63c8b0a8e35c821">+822/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>react.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-6f5adda9f7b29d98c68cab6ec754c0bac501666a49dd635ee830789e2c812b68">+0/-497</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>1-introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-4dac916b2b27af668674965d9680f4ba8d2a417f7b155d4b052b1043fc71beb6">+116/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>2-protected-routes.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8ab0206ae4a4c73e540cf549fdbdd9de4ed7c8d59cc88ea26a4a7ddc0a9a4460">+1435/-0</a></td>

</tr>

<tr>
  <td><strong>3-user-authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-e02466ba1abd5d457724c7508da083a94b16d700cab36384567592c7d772cbf6">+647/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>4-graphql-operations.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ae759670f7bf513c66bc08952556514e7193f23eb7cc536aebf38ad79e12c02f">+856/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>5-file-uploads.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-02dc5fa1da67b0478bb797ed99c89685be3ec4509023441fb29b730ba74fff4e">+715/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>reactnative.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a85b3aa1caaeaa0a2cb6219ca531f89aaf2b23b41cd424c189b3cb948af1fd57">+0/-443</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>1-introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-573f696fb008f0e047e97209a1595b1f5c69dd5a1fe4907b65d6883273c53096">+121/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>2-protected-routes.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-b4ab0ba037b62e9eb5ee10cf5f56fd1c148f1e053f95291e42113d9f924ae711">+1499/-0</a></td>

</tr>

<tr>
  <td><strong>3-user-authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-dda89bc27be58e7fa58aef9aeb937dce455f69d9566e734a10ef4e0df993ab42">+805/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>4-graphql-operations.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-59a46fa74310dc797cdfd6e1a34d09fd8002e9accdade9d865b898419addc2bc">+881/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>5-file-uploads.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-cb48bca7fdd422250b2482167b9a136d76ab60d2d5efccb94fb1a022b814d449">+776/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>6-sign-in-with-apple.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a4da2a574e88122505df17fcf1f9705841a8240b33f60b6fcde86e068b8b6cfe">+684/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>1-introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-1eb8289a9ffc0484d2f8f21ede882c9e892d169f36b69f2ed9af940e2d1b8faa">+116/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>2-protected-routes.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-bff6efc64eeda0dae0d2a133ab6c9be9dfe725ee24b364b89060ec93344ad436">+1308/-0</a></td>

</tr>

<tr>
  <td><strong>3-user-authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-f6bac1bb9476f921272f61911c703529663fb6ff37217c38d1702a1c8b70171a">+578/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>4-graphql-operations.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3a43d1ebc0b4fd7f74699c4f33ea110bba5ffa2695e6228dccafbfa38798c633">+763/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>5-file-uploads.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-2244e838acdbe909772f82f66cc63800aa9dbf5fae292a40d2d4f663d6618dd4">+642/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>sveltekit.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-9ed4ad735d1142a65a2da2dbbd8d46c508b7aef3d032cdb102d0f329602c4ce1">+0/-497</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>vue.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-f6c4215fa6909fd3accebe0691a7364d17befb8ef90da5a4aeaee83d598c0540">+0/-504</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>1-introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-9485f8a6ad6398b19aa7a3739af3eef5158a7d285dc5a55e8bc6c1d58970fb84">+116/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>2-protected-routes.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5ba36ef4388ad18b7efc6d405e2b66a69b063d483d4521d6acb5b5da65aee97a">+1368/-0</a></td>

</tr>

<tr>
  <td><strong>3-user-authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-63f56a07c48f78462b47f74420e58cb8411d46aef880cfdf24b11ddea4bb382e">+637/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>4-graphql-operations.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ad7a84d0c924b946d992f5277cde596fb9d42eff021b888b5a8046822afabca8">+828/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>5-file-uploads.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-00c26651dea4650fd77222a24b31387569067783a87d9c6715935e2bf133428e">+720/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>auth_user_security_keys.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-385036f3c18b6efd97138842e95f992a0569f612f627e71091c10952d8d31609">+2/-11</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>auth_users.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-aba47a0c058f0a0a8122dee4d7b4394c4a8997bac9d4ccea04c41f0d00819050">+0/-24</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>storage_files.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ea0619f75a1f7dd13ca80d81cc2e28529594a73fff0356dc0b1d49ee0d1cc9ad">+17/-36</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>tables.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a57c35142b6c4029fad7d5c8407305a61d18078cd0e264d41286625cf5cc4d30">+1/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>down.sql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-d7be59389936d96f1c3b10f2147b177d488906d2155139536fae635201859c3e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>up.sql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-69c6c175ba9819f7b41d6a27e78fd0390e222665c9cc95fbb7fde702f14a1f4c">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>nhost.toml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-45587ca86b6441ceacd1318e72a60ee0c30c70c00edb0a06cf061e404998f3bc">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>actions.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a0279ec5849eb0c93ec7c2f444fbecd2b681f47d954a84da5221f72d9805c2ca">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>page.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8fffbc65277c93c49eea289ae1174cdba0632e5a295b74668437e9b1b0669097">+61/-30</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>middleware.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-817666e0f29fa78d2d7f77ed93cff4efbc8d85a996ab58d0dd13ad61e47c9125">+5/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>App.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-849f3aa52970f348de49a27094aac4e4b8cb8cf29580cada70d37f1a04249725">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Navigation.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-9845c755953914963f404a14104d93cd326f78e48614ece8c4d9df3ab1600ffd">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8e415aa656412ff29b45f56035e84691f3abcc924bfb5b4e3cd0c9ba5237543b">+200/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>+page.svelte</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-00da2a0f738ffa5c66a07437c7e85cacb7780551bad7e81899d905f065bf0892">+29/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>main.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-1d2ba653024753e96f2db949f818dccba45498456146171c4a2f883b58177d2f">+373/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>Navigation.vue</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-27e2f662a54c47023a1342005bcf92602a846ad7a59e9d7d528aa8fbf40a0250">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3bf427bc13a501168d321cf4bd428d09d8c3a042ef3be955c7a2e99bbf5f39dd">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SignUp.vue</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-1838012876d16508d53d0345615b91c7c6fbccca3c9333d2311ac5fcd7b4c210">+28/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Todos.vue</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3334950776983589e7061d69be930b71663329a6ba56726bcbd3f1c2352dab47">+466/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-85a3083c78e211e9eb36d741342bcbc85a1a0c375060f45c5426b560196de27f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>.secrets.example</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-be7a988f18be877344f8584befc094ec2e66fe7784a2007300053707ad8ec7f1">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-36623bab6fe16382fd3e61b06b9586f2b14bea7c1b492e50db14ea98935016a4">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ed02e93d01774c3796335c83badc90cbc8a2035040965031946b69c8d91db3dd">+29/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>env-up.sh</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-b6846a8b7ff5eea35ba5ff2aac8773f526c118ef59712a750f69578f25afda54">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-f0d63d57cf77fdb7f2526d10c2d32d51ed2b6d43e3495d3f8879499e0c04f04b">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-cad0e83f030efa9fcad494c7797838c5099909f2c2ae0de0210812b966ffa6db">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>config.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-997042f08b088725275a28a7e2d275b86e2e74f3c972800e8116785d5d0fea59">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3c921023f82fc74f5b657cb92bc8906ea19d7eb8f746713e4fae2a5a894a8a59">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5f67fb54ebc23bfccd1e23fbb7dc955bad8ad9011fae19369c87bf3f4d3e58fa">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3c21997bc2db49d5714afc007f214316d17eb69d8ea70dd1cfe558bdb47df4bf">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-e3ab8737d4a9ea68a115f28ce578b7502107f68212d92f035bb86178ccdfb6fe">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ed34cbd1c3e612ac3124ccce382b84ea7cda7eb22051b07102b68f5c28c58e97">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-b8cead9967aaddc7c52be376fcd54b27c6ec223445e0063729c7255ab6c4f5fc">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-295cddc1774338f5b6ba396ef5ca9a0832b9b2346703ec22abf3b3874f903cc2">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-de3e6c264684c0dddb2f6e70dcb236fe8cb1a27789c01a11b2a707c110ce7fc2">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-ae93f5f97d52d1d42be91b50e2a44522aef884065559f993f781f1ebeaa89b66">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-13511e1d49a2796e2ee0bb2082f02ed59c49bef7f7533735e60ac62ad16cc2c6">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-293b460447946e2de5e4ba74cf64895a4f6fff7d879bb2e555c46ad7edd857a8">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-843300abe10319ac2b6ccffdd8daf3445b8eaa839486acb95566d398cad4e053">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8ff22c43814b945c0a22ea9089755a144e54039bdd12a2f06a128b4b155b3e38">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-f9e07ca4b5b9ae54e1668c3dfb8ac32612df366eb7d44819163f17c792507295">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-4f829f73c5bce9bcbb67ed1357a111cdf9974c36d2db22493067d201b35f4cdf">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-64f6273ffcec137bbad9a104cd46e6a8776915a804bb3f89c24701071cbb2c50">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-e19bb81615465996e46da50eacac7fddf71dd8bb18200c410b1837575bd76f95">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a202edc97b202ec41b83decb7b358a6beb89f3edef46194b576ecaada51f073d">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-c2338d16f093d53b8a86b9a859c7bef0d9ef2c83a762d46cd49ab9e2f1f2a773">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-7fff5a89330dd91d3c9781e37d8f1e1f48bfc58c686b463b7fb1f43a2d01813d">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-c9031a1f7ac5ad3d0c3c94cff2f563560c1e3c05d1acc00353e603f3dcac439e">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-847d33f3faf4a7f928445eb389ba8aa24901b9025d4bae0c38becd5e9365a881">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-3f5c827ff0c5a3270dc4c7737b0afd09327800104cb379ed2a556029eb58aef3">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-e499fcf53b46507a64be23ae309eba07e2c3ee289be4de316bd8ee83c16ea42e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5a6337adab234155f13e6b7d63eac5c654d5c75f4ea207c9db16b67685ce3e43">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-b8f9c01ea13429ca9990a95e81ac6bedb273ec41198f34903584e9a68c22c6ef">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5bfe4c29aee11546871f9127b5c5a954f313c64d2344cd4e6cd402fe22cf0ded">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-262bf98a3f4801aff364e19a4c00bf37197764454b274faf1dbd947506b843a7">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-8a4ad52e5c3cd679ede51f7d411ca5aaf89f2f519f49c540e09408bf13823323">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-46f8a60e052ff7b9b3d8583f83f36b826aea9c7a24af9e9998cc0b699900b3b1">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-03da104febe035cf096fccbce0dbbf32197d289de814810792a319154241200c">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-d7fff652e5e21d234b1ab733de23d179d5901ff82165ffbd9495b3a1ab1c7611">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-a84317c8ffe3b56140c923228666555d0e9e93c34eb5a8376b08ab97e6e4ae96">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-5025ef2a43d19c4f668177eea4e8002664a22522e11fef04aabbcdb2fbff3178">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-e941c399a4d0b15de5bf2b20e722c2e6ffc990ecdef15efc2367ae302a52ff63">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-126da45f26e2d9256a28fadd38f363277926de563e6b303027cbea24779c729c">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-4686c2e7f183e071c8ccd456189d9bd056ead4874078dba16b1a2b1e53c7e9e4">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-331385785301bc1e55cfb6a3c707e3704b32d82a38f7ccd9aa4aa834a8569df4">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-57d1b1020e0d2e327acca4154b0e4776f3a7a5db1d6c99edae3ee45561780c6a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Additional files not shown</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3469/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
c6006fec30 fix (docs): update quickstarts (#3463) 2025-09-24 14:50:55 +02:00
David Barroso
69c2954658 chore (packages/nhost-js): migrate from eslint/prettier to biome (#3462)
### **PR Type**
Other


___

### **Description**
- Migrate code formatting to Biome

- Standardize quotes and add semicolons

- Update import statements and paths

- Revise package scripts for Biome


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Formatting</strong></td><td><details><summary>20
files</summary><table>
<tr>
<td><strong>client.ts</strong><dd><code>Convert quotes and add
semicolons in auth client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-4ef372e972ad443bba16fd25b9b721088c801a0d75db8102062ccbc00838a2f8">+1038/-873</a></td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Standardize quotes and
semicolons in storage client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-4385e1bb86a6ee228b61e620357d826371939ae8cbe6ef674dcef108e2bf5ab1">+341/-279</a></td>

</tr>

<tr>
<td><strong>storage.test.ts</strong><dd><code>Update test imports and
formatting in storage tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-19d55fc74c55988fede4d554a6bc5e052987219d1d5bdadd30ef52d55d1e9d78">+188/-186</a></td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Normalize quotes and
semicolons in GraphQL doc test</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-c7b7dab18f108770bcff06dc83cc9a34a5ee72c5021a035129a264a968f7d5ff">+141/-136</a></td>

</tr>

<tr>
<td><strong>functions.test.ts</strong><dd><code>Format imports and
strings in functions tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-513ce67d4002bcaa8dc01d8133ffb3a0c39c430604ba3c2d17ec6c0f7ad6f1a9">+132/-128</a></td>

</tr>

<tr>
<td><strong>graphql.test.ts</strong><dd><code>Update test formatting and
import styles in GraphQL tests</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-488fd58d97b84872c4b9d160ddd54d17f198d7dfe2e3508c84491bb7b2509e1e">+124/-109</a></td>

</tr>

<tr>
<td><strong>nhost.ts</strong><dd><code>Add semicolons and unify import
quoting in main client</code>&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-68e0323ab180717ff0de35463496ca8eb3b8fc561462459f3c9cf178aa5754d6">+129/-68</a></td>

</tr>

<tr>
<td><strong>enhancedFetch.test.ts</strong><dd><code>Standardize quotes
in enhanced fetch tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-c5e61a5e461b17c08bae579aca5ef65e6b2b333df8c770b4f380f98f24c04e8a">+139/-122</a></td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Normalize import quotes and
semicolons in GraphQL client</code>&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-cbd71dd3404704ff9d9c84273572fcac6f041532eef597de8a714249c08559c4">+67/-60</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>storageBackend.ts</strong><dd><code>Add semicolons and unify
quotes in storage backend</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-22fd8793eafef0c5b0291339777a93768f83609d3b66aa56c7330d7b72b72739">+45/-41</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>refreshSession.ts</strong><dd><code>Format and semicolonize
refresh session code</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-578cd1f069f1742b4a1aeabaaed852562659c6a830a4b51df0c26d52af478051">+65/-55</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>nhost.test.ts</strong><dd><code>Update test quote style and
semicolons in nhost tests</code>&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-7daa50f1e08361183e9b830443d3e5837f3f8ff111da0457d9940063c084c2a8">+34/-30</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Unify quotes and semicolons in
functions client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-6c8d0225c010836d4a88cf726a477821cc64d33c167654bde18178350b4d20f5">+47/-36</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>fetch.ts</strong><dd><code>Standardize formatting in fetch
handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-d340c8b819b3e37cf227af2925bfb0ab406d8a9cba5822cbb1ed11a895ec90cc">+45/-37</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Normalize quotes in
functions docstring tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-0846336621cc9854b0e8171e12133b336a72563488d217eecfa475752c2998db">+62/-62</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Update docstring test
formatting in storage</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-fb587c97d4651f053ae6d4a33dc468aa4d24c38e98fef3225bb68561ba7fd6a4">+52/-50</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>session.ts</strong><dd><code>Add semicolons and double
quotes in session decode</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-2292867bf3b27d5d5887a247376b111c659a797dc92df9365d7e6b0bc64a5868">+37/-35</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Format main docstring
example code</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-b97eb064c8d8cbd8197f40f06117348a994b0f6d42a73d2e0a47cbb226cb4b08">+35/-35</a>&nbsp;
</td>

</tr>

<tr>

<td><strong>middlewareUpdateSessionFromResponse.ts</strong><dd><code>Unify
quotes in session response middleware</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-a2c5449dd97df2d425297ec7f3b7628f405e3955cf46a9935afd8d1fe0ecdf7d">+37/-27</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>methods_ref.yaml.ts</strong><dd><code>Adjust
template-generated URL string formatting</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-f5d4c1cc3e0ab95288bfe009f15ca77360a98665cc621b7d299e8316c9e56001">+19/-17</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>39 files</summary><table>
<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-e456dcfd6231480081b3c9a2a95204bd061853442d5e3a38330625d01cb1a6a1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-8c4658c93f89aa3cbc7671465147938c58e14e66e3b95309b9fc4a11969a7fe4">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>fetch.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-fd8af47714fe1176997bd7e7ec7ccd42d1f57f566ae2c40dec13dd0dff098a97">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>functions.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-d0df96f3f2c99485d0a0a31007f8378177bd8f000f6dc1468c6a03a4c2750126">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>graphql.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-be11be6441756582b629e0f4f6acef5c1bb59d749c3fa3202043f7cf345696a2">+43/-38</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>storage.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-58f444ba0dbbb972fc20b6aeed7ae8a4bbf57776e2cd7f498b3f3c37095dd7a6">+26/-28</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-f6086e59795d16f4c73cb0e5f90b986e288deb5f176c80c5c035f1703ff86760">+0/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>crash.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-38c3348a81607f21101d8ecfc1cbaee87f9716a2e54c9be5fa301057f40bb03a">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>echo.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-70d2dbad876749b22eaa28784c7796bea615e8a4e17810bf36da113dccab1a03">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>helloworld.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-b37568d59ded3a9cabaa4d97c80e5dd1dcc2716903d9e10171cc7ec4f3fb0592">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-db5537429694d86082c34ac97881b7811aa1c79ee496dd79c248494698ba3b83">+0/-23</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>email-confirm-change.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-0bf93b57a4a18ccfa08b72816a7eea2c14c00ce92d9a07249405805500c8bb45">+0/-129</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>email-verify.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-67bf177366a960b6f068b1c8802f5c200b6ce6069f8d5e61c632aa4191b8adca">+0/-127</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>password-reset.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-6e2461fe97310e38e2e4eed0e20570c5a51636989b95c646661f7bc04b37dd5d">+0/-127</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>render-emails.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-2bc9d596f730e2c72f02a1f57d6636136f898d81396493d1fcb803cae3f7351e">+0/-82</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>signin-otp.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-d42e2ed4843fe0bf2888e9f7cba159cd0513045f822647b39573dc100b185301">+0/-124</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>signin-passwordless.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-a439b87562c1d2d60473ace46aa30e976b5b54c3c86fa6c9c1fd0b87c65149e7">+0/-127</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>eslint.config.mjs</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-90fda00235d0809b221cb70446782f42cf392bba35ae6d3a4582a255e44161fd">+0/-26</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>jest.config.js</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-f833c7bf2eb86f6c2a0ddb4e7f4e093dfbdafa1337e7f3fcbdc4865c1b87d97d">+13/-13</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-a56af396cb39f7430957ad27d498ce3721935f5ed054cc8f15ffa864dc705618">+3/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-8aa0f2b40e1054e08a33a0b071a6c672edbfeeb281f6c51e94dd73035014a6e9">+2/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>auth.test.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-4c1f0d383da8b3f31cb374ae16b8ec047476e98f69f6650797ead4a6395f0f25">+60/-60</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>docstrings.test.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-ad0775feb478eaee0adec9dae6ce7055766b0612cc624f19b6c4f47d2ff47505">+41/-41</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-cf6c55f60c1ce5bf6d717a8a1ffb4c11458e936271a0406ff6d11c25010b2559">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-6b258ccabf862a7fca001b4d49b3ea5a33e1cb11f28e773ae579e4ae5670ca21">+7/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>middlewareAttachAccessToken.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-406a2ec81128d07056432f10bb888dbcaed0cfa5094fbd6133c3a6d5f710315b">+14/-14</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>middlewareSessionRefresh.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-90c69b666c6c6262a3d9dc9a9d9a0f863b12f0167edb49cba1301fc737cbb447">+18/-18</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-a0c86d5e58047ce9b2bc69a03fecc0c460703b3809eabe33e69a4a649c9ebc4e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-6124d7be08592679e7ba8ae19ab28f3fca0d9a8fcd04c62f130eb8038eeb29e4">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-6c48c1026ef2c9ccad3ce59368254e9278474cf4de5fdc0cf0f8659d10064bf8">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-7a32be1b838de9664f00775a9c4b4ca11dc34cdabfc3454b3df41f3d5f49b994">+10/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>storage.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-fc03ab2aa30e3c768df92d95608ddb18eee84b477dd1f1182ba70965e1b8f050">+28/-24</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-999182148616dd69a7cc1980b333d144ff91f034458107f87b1679ef9d958c97">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>vite.config.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-07972b1690be8a3a1bc3d77cd95767678bd3bcf7ef3708287475027606d59fb4">+26/-24</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>vite.umd.config.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-c4b34676ca804362319324b44ef2195cceee6f6a47caa078bdbe60ae437a0d98">+18/-18</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>content.yaml.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-d765e72738bf96a473d1f198037b7835df3870859f6c8c5a210118501526db60">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>types.yaml.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-c2463bbdf659ce7e41134cb40072f17f8cecb6bef7a9eef20012a249cecd040b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>client.tmpl</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-0505af00753e1b8d32c18216b446cc7d297d4dfcb33401fa8330802d45f52f63">+8/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>main.tmpl</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3462/files#diff-fc22ab9df6555bafaf34152e651b1ee89f7115bb837ed8a7788068ba34673176">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
be6af4f157 feat: moved guides (#3460)
### **PR Type**
Enhancement


___

### **Description**
- Introduce React Apollo & React Query example projects

- Configure GraphQL codegen and generate typed hooks

- Implement `AuthProvider` for Nhost session management

- Add pages (Home, SignIn, SignUp, Profile) and components


___

### Diagram Walkthrough


```mermaid
flowchart LR
  CG["Codegen Config"] -- generates --> GT["GraphQL Types & Hooks"]
  AP["AuthProvider"] -- provides --> APP["App (Router)"]
  GC["Apollo/Query Client"] -- used by --> APP
  APP -- routes --> Home["Home Page"]
  Home -- queries/mutations --> GT
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>graphql.ts</strong><dd><code>Add generated GraphQL types and
operations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-f0ffc6fbc739aa455cf3967c263549e2acf4922dd63d9d2fd33ef9975d958b47">+6994/-0</a></td>

</tr>

<tr>
<td><strong>graphql.ts</strong><dd><code>Add generated GraphQL types and
operations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-08b9f52995757f95a31a6d4d7bafb1f1a473ae338f9d11f343956048d13a0b58">+6944/-0</a></td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>4 files</summary><table>
<tr>
<td><strong>apolloClient.ts</strong><dd><code>Setup Apollo client with
Nhost auth link</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-f0211d31ead8e27f200356bf615f34eee1e96ec6b068039a36b1506d32c35692">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>queryHooks.ts</strong><dd><code>Create React Query
authenticated fetcher</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-45c18c55c9756b413c5d4b9a71bd04a53d78706eb9a2a611f2fd0a1ab7ce6b51">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>vite.config.ts</strong><dd><code>Add Vite config for React
Apollo example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-146d3d4bcf230a225998f3c68de6ffa9f19e16b85bb5ca882608d76e7b086566">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>vite.config.ts</strong><dd><code>Add Vite config for React
Query example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-22a14bf686832a47057d73f552546a1d56a1f34cd34666acf741940feca0605f">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>14
files</summary><table>
<tr>
<td><strong>AuthProvider.tsx</strong><dd><code>Implement Nhost
AuthProvider for React Apollo</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-71a439d2114fc41855bdb2041134bbc4de64f886f06f3f50ed2fd31cc61c84a5">+175/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AuthProvider.tsx</strong><dd><code>Implement Nhost
AuthProvider for React Query</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-34697170eae721899cacb8faca334b60793b405b3f2ee327fecd4d6944338ed1">+175/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Home.tsx</strong><dd><code>Add Home page with Apollo
queries</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-407aac78333f6d47a86500b3e0c2311f1967ce50ba1a7ef4f022b8a50c013160">+203/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Home.tsx</strong><dd><code>Add Home page with React Query
hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-c91862e4a735090baf145ed64f347a460446a25b8d5061b6b928b88ddb146008">+204/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SignUp.tsx</strong><dd><code>Add SignUp page and
form</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-9a841d153068ba2ba45e3b00c3979eca2048037670945ff079bce6645780f447">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SignUp.tsx</strong><dd><code>Add SignUp page and
form</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-53b2663ba20acd8379c5dbbb671dd0c1badbb24955c7b9b7d9115843bd9ea859">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SignIn.tsx</strong><dd><code>Add SignIn page and
form</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-fd0d7f5b422c5c3ec70fdeb95da10479b90132a571de56307d9b44fc69aaf27b">+120/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SignIn.tsx</strong><dd><code>Add SignIn page and
form</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-ec047013e51fbbbc17b641287e763558c5182325be0fe86d44e439eeca6e9ad1">+120/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Profile.tsx</strong><dd><code>Add Profile page
display</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-53e4cf70b4b84819e216a602241d5379b9402a2412af122b5a870ec0bc8cd6a1">+66/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Profile.tsx</strong><dd><code>Add Profile page
display</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-13fbb13999bb0001387c3d9a5015974ffece9575c1e6240a21157a07090b3374">+66/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Navigation.tsx</strong><dd><code>Add navigation bar
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-eb031d8883524edeab44c5b665a2429cffb1bac75d8f0dc1dc7bc3c42aa9c068">+85/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Navigation.tsx</strong><dd><code>Add navigation bar
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-3d34860dbf6645315068dd62f3be52745294be2729e4dc718e40ad0125669204">+85/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ProtectedRoute.tsx</strong><dd><code>Add protected route
wrapper</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-55c80a4fab944fa1c3210cce0fd0092776a01046ee9893c88c69d0c5f5f5458b">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ProtectedRoute.tsx</strong><dd><code>Add protected route
wrapper</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-bfc4913eb77b8cbe8115f7833bfdf1aad595496f3160dbf43eabf829f0d94f5a">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>39 files</summary><table>
<tr>
  <td><strong>examples_guides_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-56c96ece925a38bd3e84d3fff001760c68d40744013d2b3458ad445a686a0c36">+94/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-f6086e59795d16f4c73cb0e5f90b986e288deb5f176c80c5c035f1703ff86760">+1/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-85a3083c78e211e9eb36d741342bcbc85a1a0c375060f45c5426b560196de27f">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-4095856b4a3f808fcab300063ba57b9e84d2cd2b80e244b69d48d13ddadf161d">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-65c8830b4c3074e59267275284f270f4dfa95ce2722d7634e3e3c77f66f8235e">+105/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-b79af2df973af3966472409744a06f7e930008c43216cee8ea91af504bf569fe">+391/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>biome.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-bee8a9ce71bf1a5641c7bc5aa57f0ca5b4ab5e6a1fc0c08067cb02caa48048a9">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>codegen-wrapper.sh</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-3d8141868656cb3c65352257558703f27b1f73b417f8a3223a595d31ffda1b4a">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>codegen.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-88f3c353c9bfd474e259a4e6a70b4425032b1d6b3c228046c36333b22bdb027e">+44/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-e26ca0f00bc4456ef2ec04d470a864c72252bff2a9d34aa068bd6fcee9bd837c">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-219f91ff32e8ae8ff4fb20d06f91c0d4501d50dcaf34a4012aa0829c61eca41b">+36/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>schema.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-1aef57e8c82d9f02e7c40f665ffbc384489beff7b299a8d30f1b2a00ba54676b">+10143/-0</a></td>

</tr>

<tr>
  <td><strong>App.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-3939716d6e04d989c77f1b141c7893b8cad49325d77146df613ea763da566029">+56/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-42378718fb21f3858c4d3ced50bff70946a0a63d6f5afabf5d29e01b9d7e58cb">+552/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>queries.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-a72744935ef245ce03e31a475ece30582d3fa9d8295a1338d2fdf3d64f52875a">+28/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>main.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-fe10a290150d971b54595c18a0e3b9486ddd237611225ec4fae333c893403a96">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Home.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-34b39976cc1741190f571fe587e77290bfec3f7248b8dab7cfe2ef3832f39ad0">+217/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>vite-env.d.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-76ec290ea25ad1dd3d6a40aceb23964e6af759e9d223d0227ea7a9b4c27a4c1a">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-1c4ff207f3f497bf6eb395d765c67c43197a8141faf8e0b78975749d7ef8de7b">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.node.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-2c47cac1784e69cc8ee9de2b8654939b7699e627e6996135af736d086471cbda">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-f8cffe1a6c5ab9062008bdc81cbdbc19ff73c414e852e6cc630288c935cb85c5">+493/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>biome.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-f3c8d8d56e583f7496332f58d85b8f2fc179364af6d7b6db2050cf8f3019449d">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>codegen-wrapper.sh</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-697fec800dc8ea79d58ac3650f21d252340f04c760df18c060c24523a7324967">+31/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>codegen.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-9b2b4b1be5005479ea56b7dbb26f8f34e9b39ab005c4df5e5547caef4bb8176e">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-6a4d60e607c923818133e58b28b06f9b749a492a500a6b2899e1f2fd991ad03b">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-e80d8d01acf5048bc7c1767cf248b07e67df6a13914ac02d43c8b180b0178ddc">+35/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>schema.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-938b6a319b1d5f5234f3e80b49c3d9c429a45569fb777ef9310bdbdeb3f485e2">+10143/-0</a></td>

</tr>

<tr>
  <td><strong>App.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-9a06f558adc00bb736ae330d10f276dd360d3b2e08814d424392470d6b19af3b">+56/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-8fe80a812b88da1a00debcd607d5a7300a01558103403d6beba1c8a514d1cae0">+552/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>QueryProvider.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-5e3488d3b7deca24d0d26f4af88d201e7678662e6531f4e4cb511f99d32854d5">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>queries.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-6506f25586ed4d14db727ca7ee5be4e299c29dbbfcdbcbc4f81e49a4ae9b5fb5">+28/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>main.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-2d90aa9771205fab3d46a5d28686eae47e929a9ec6070dc3d564d37d6324768f">+22/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Home.css</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-ef3665d0c09e727cc06d1d429d983c3767f8b65add4bdbe5b095d3816ebbce1d">+217/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>vite-env.d.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-c931c9d2529208b5808e22f0a18c44b7cff5e88d1592b8f472f46bcdeda844b5">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-097ce507ecd096e978eb5013155ceb912fe10b0b6de8ee4a0f13ff08565e1cae">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.node.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-12b373ca0bdd9a2bc826e660ccdccc9573bd0ef54d592f2ebce0473e9568dde8">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>flake.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0">+7/-40</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>js.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-bdae1ae0f0031ce2c2e0356df4460e40363922c9658b25c773ebfe29fe052cf9">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>pnpm-workspace.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3460/files#diff-18ae0a0fab29a7db7aded913fd05f30a2c8f6c104fadae86c9d217091709794c">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
3a41251caf feat: added examples/demos (#3459)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Add multi-framework auth demos and examples
  - React Native, React, Next.js SSR, Vue, SvelteKit, Express
  - Email/password, magic link, MFA, WebAuthn flows
  - File upload, profile, logs viewing

___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>18
files</summary><table>
<tr>
<td><strong>MFASettings.tsx</strong><dd><code>Add React Native MFA
settings screen</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-5d346e2efc6817f6c3de4360c27031e4d5a4f37423aedb329f645aa9ac33d6e8">+594/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>upload.tsx</strong><dd><code>Add React Native file upload
screen</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-3763882523f551153b1520c05a953fdd2b3e7e0c37e2db53318e6a2f05d09b9f">+552/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>Upload.tsx</strong><dd><code>Add React SPA file upload
page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-aadcba440d58667ce429ae0caad0695a7dddc8d91e1b8f0dc52ce6633b0eddc4">+444/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SecurityKeys.tsx</strong><dd><code>Add React SPA WebAuthn
security keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-3f9cf11913bfd3220c4c220618b5575c6a3ed59ffa42d6d5be32c77edfc7d610">+404/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>client.tsx</strong><dd><code>Add Next.js SSR file upload
client</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-f6fa7dea8d8baf6d7fcefaf4517a492dbfca213afcf6b5d08d180a889947c0e5">+399/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>SecurityKeyClient.tsx</strong><dd><code>Add Next.js SSR
WebAuthn key client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c05c21b6e3c47e8d17ba69ebba93e3ccd4266e26fd4062e6de552ed98d46c603">+351/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>signup.tsx</strong><dd><code>Add React Native signup screen
with tabs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-262b09b9dd7234cad96fe092d7131a23451c9e50b98c126c9e36599b3a127ac6">+387/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>signin.tsx</strong><dd><code>Add React Native signin screen
with MFA</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-3a4105c32f4aa4290e4fc0a12c2cc3121b4b0901c1429917087e26569c1c0a7a">+367/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>MFASettings.tsx</strong><dd><code>Add React SPA MFA settings
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-e43f9e6aec21b8620c86b9cdf9986e2e8dace52d87609b1c74cf6ab9a0639d21">+288/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>mfa-settings.tsx</strong><dd><code>Add Next.js SSR MFA
settings client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-75767c82cc4c7eb779f3beb7ca5c5f9b2cc090347029ab44cc7f93b8b881c85b">+292/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>profile.tsx</strong><dd><code>Add React Native profile
screen</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-e996eb818728427e1c131ac6f3cba0bd506ad8f28486ee47c9ceb5b33dbc7869">+262/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>verify.tsx</strong><dd><code>Add React Native email verify
screen</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-93aeb3cfb31ac602e11e6031bb4860e81385c3c9693e5285c8f69988341cd045">+265/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Add Express server Nhost client
example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-337bf1c26c434751c7c3e356598278e8e05482e41936a30c587cf68fd375092f">+126/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>email-confirm-change.tsx</strong><dd><code>Add email
confirm-change template generator</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-5ee9a92531c20cb74b9a49335eb0a65cdd73efa7d8c59020ea80163bba2cec72">+129/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AppleSignIn.tsx</strong><dd><code>Add Expo Apple Sign In
integration</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-8fcf005753999f7770661afbc82063eb0637a2f959f03a77a94d4eef55b1d9cf">+112/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>render-emails.ts</strong><dd><code>Add email templates
render script</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-760314d4066ab3171a8dd9ec712e5e6b4e373f86531e66c502df06dab8f9dc7d">+82/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>auth.ts</strong><dd><code>Add Vue demo Nhost auth
store</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-db6008d5d08993870173045b4d2e978832e91943222dad7f6093537c48277e4f">+75/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>App.tsx</strong><dd><code>Set up React SPA routes and auth
provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-849f3aa52970f348de49a27094aac4e4b8cb8cf29580cada70d37f1a04249725">+77/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>DateTimePicker.test.tsx</strong><dd><code>Simplify
DateTimePicker test awaits</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c7076012eb33d6f60049710638b5ad19c2f310b8c250c79f1905be7e0a30b00a">+12/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useProjectLogs.test.ts</strong><dd><code>Update project logs
tests to use CoreLogService</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-13d900aa08d06962a09628136b893801ad62a96c3ff89d380c5c4b7ae92d891e">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>101 files</summary><table>
<tr>
  <td><strong>examples_demos_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-48c5a14a5d1da9f35b409ecc95fae8f3a319f97bffbf0020efcb8c360347dc02">+94/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>biome.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2bc8a1f5e9380d5a187a4e90f11b4dd36c3abad6aea44c84be354a4f44cdec55">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>LogsServiceFilter.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-a590a7298a9f040df9f26c4eb37d10fc36f47c32996f71aec47796f08c44e892">+8/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentServcieLogsHeader.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-46fb5d0c9528168323c0e16ef4186d91fe6274b64292f43841258bdfc45dd581">+81/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentServiceLogs.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-333a9783713e9a4bad1b5327e117cbe69148091abe8b9038d36132b5f4635bbe">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentServiceLogsHeader.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-4f102c06ed32bb3d8245e415e76b0b14d2d4ae3abca6e234edf69278325c7a95">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useProjectLogs.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-10efc67700b3f024dd03442eacd339802e951696d04caa76bd5a864bd5c7c83f">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>LogsBody.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-b628e511a7fb9b237ac691b27ab9585eed0d0803144cde66c3af7fa6f9a2dc40">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>LogsHeader.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-6a348a6b3f868aac854020f2b85ff9a7cf5d61f362a5201e77681e4d5a576f20">+86/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>LogsHeader.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-ebb3285aa776c9c5ea8b72672c4aafd55994c6c694998bbf56ca9c56d1e77664">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>services.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-8fcdaed33322718091b613ae22c65cc3eb61972904b5af46866b160c9bbbe48c">+13/-13</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>logs.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-77489a68a7526d74f06d59019ad68c44728b7620637308d70fba38d6649b73fa">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-80fe306cf2e39e0852a6033f331195be7942ed7fb54b2cac6bd0139cc34d1bb6">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>APPLE_SIGN_IN_SETUP.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-eeb0deb7c8dae0e6b49462b92e5e7176ee11236759847ea59253375ba48d6f5f">+95/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-29693cbc361101a671771703a3097f97b0ad6c344435cb3fa6d19b00c030ecac">+169/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>README_MAGIC_LINKS.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9232aee57e45778533da1f08d80d794f612f3672b4e2fc0a77c4ca6e03e27d3a">+410/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>README_NATIVE_AUTHENTICATION.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2bfce492dbe0824f4e47907f7269b57b6f8f092550647afc46cff13903a34750">+381/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>README_PROTECTED_ROUTES.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-25f106def41f290d4c471f95f4a25db4c7d411407f7937035f5e3e53ff90aa6f">+357/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>README_SOCIAL_SIGNIN.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-10c036291fe61ed79d9ce5c1764f10e44b6cc57232b0b6b981c19f84760f5e8e">+530/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>app.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-12f6ad4bacc187ec247d9ee19b2ed6a5b49c4304508fd3ba4321b265e0eec36f">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>_layout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9d1054a3d9a27191c4056537dea211e6a19610581557e756db81677e49e7b929">+54/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>MagicLinkForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-169e79f10d79f5ff7df3e910f042005f0b139246098ad4a1d2284ed450409b42">+158/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>NativeLoginForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-46f2e1cd61d0d53b7fde9a0056f78e07a317e8fe60b6b237baa0a13d6cd4a4e0">+93/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>ProtectedScreen.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-4c71e8ae5499fc1dda82b020fd0b1f2ce2f972d18298af69d6c3c553742d2ad0">+40/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>SocialLoginForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2e46da6c133f57ab9748231ab7985a6704893b6d99c2981007a3cfeaeaee2b79">+91/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-0db4f13bb27522261f48250563b1f9d6e6cd5805c9b89caf2bce331b229a4cca">+120/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>AsyncStorage.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-7c877423128ee8dadc8bafb89ea8a98b6c1b05130949a6c6d9f3f325a4ccacc1">+93/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>AuthProvider.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-72e3c353a156c42747b082a51cf6ab9e59a8b5009f8cb637d9e75fb9c31a7212">+110/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>utils.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-4091a110ae026c9f130fb654f47381b503f7a04a1cefc3020831ecb3f0d971ad">+44/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>mfa.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-477afc36e3e2e62727b11e6d1f77592c89d120d8dfd676a05756dcff7625825a">+233/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9d05689c57c194cb000eb7ff276476869ba4ee40a730c23e47016671d7f17521">+57/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-1d10ade4fc1aa2dce579be648ec4420554d626d814d1971a6ec8d59018eb3bc8">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>.secrets.example</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c47199e16c186acba1e9f82c541362d1a6ff05066299b04f61f358d636c3f5d0">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-5c1f8270d9eede9a24fa01068ede09fa13a8fca85eeda73328701b5781500ebe">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9a3489ab94ccfa9504db04213d3dbb603c609abf1435e5844d911a03210c3515">+29/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>env-up.sh</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-de9763dc0910faec77518ee1eacfdf7a74a257b88e6055a421f37b9ca85d4280">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c602bad387df10731905ad3a49ee0a1ba256823a7e1a4b8ca262fc2f407fea4b">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-7635e254c708cde29d62250387c92e13e0d2a7f4180b11ba11b288a7205ed00a">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>config.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-4446c65612d85e309d41f928643d796ca2d3970f2ac122559a2c3ced6cfd5a77">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-ebd226650ec2ccfdfa181eb52ac57c538d1258efcdd5eefa6521d661014b0beb">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-f4eec235a2ce395d582333d50a2358e5b4b4758a0d6de2d80bb9b983bb5788c3">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-546c1e26f4f5a58d38dab39ffcd1f1e14ecc6867fd1bece4b6a1dd76a310fe3b">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-a62a136fad466ff5def2190737d76bdb54d3ca7c31d5ed85c0c7b9bdb4adc33a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c70655567313cbdee9e332a73651c1e91e33f57fe8a168cb064f4206aca66a20">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-6a415c40c7cfaa325f53043b71d709714101b9f629f954095bcc64862abc744b">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9fd0c953500d416a457aa8dfcfb3659a517ee82a964b860b1b8afeb8d09c098f">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-fd472f081db09177df1548bebdf3141328273c89d3e76b14e01e62bfdfbe2443">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-236393a4f47ed882febf9eb4dd24d5525bc3f20e5e474f5e34ecdff091555965">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-8f0998f6df2005ee1436d74ad2ce2cd1bf91eb053a304160130d24ac64ecfae1">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-401c18113470ff2d38ad5b98eb3fc4fbb3aa1226c2db81b425a75eec28072607">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-3005f541570bcb879d647fbee1161de8b18981e4b07b8eac07a2250835f605a9">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-ed0a3cf5dabcbecde2cb9e914d827ca6a92cd0818aff7b45e51e8b5bdeec27df">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-b7ec4c42b59e6f2e23f1ba196befd43d08632b13747b48c6ceaba3d6d1e38209">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-026c60a66006fe593b8c30cba71ef52d4968f22f004c68bcde8356312de00dce">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9e40803f1b207ababf5640dec47083efa84dfbc201e968b37730e515081a3101">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-143e6ac6a6fff08a7d6a68f98cae196d569fe4f30fc0215633c5b653ce349181">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-613a3b66d30c6e4b93257765df35c2d0be6379b6f7ab6f3478b4731c1d21ee96">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-6f9c1433fcaabe15051bad4b1d888203d928a30ab2da829c724d54f74ecc818f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-1727f5ec1686c6079eb733d7f3c5cc60a6f047635241bbf4c63fc5985a78b13e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-f65964bb501d3baeba4974daaab7c0e6edaec0645860b119633d09424deb995a">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-b911f5720caca8a68bc5ba072284c4d40e1e6b3283a2070c17e84a3d9ba55f79">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-7f1525fdd0e82fd57d181d56acb7828c5838ef635403c560b1dfb88834cc5996">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-afb123c7657dcf08247b52027d73e4d9dcee51d0cb7e37a1de0f31200c4dc535">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-877b5d458de6de8bb1287075e3eb6a6f8aaba807ddd2db78705640512ce038a6">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-01135b2530cf6bf46ae7398f1ed4e1a684cbfff1af5fc7dc28eacbd3b1c66caf">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-efa400ab45cf1d64d014c44c6308be2146eb1657c02f8ac7e47c9f71fb34bd4f">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-a7a3eec9c3ce1f9d763a196f2a6af166c07c3c87f05967261847cb40219814fe">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-344d73792431a98012dcfe76f75525a383827ef6f81ab1688b46ba504c34a903">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-d01fea24e87babd4f89d3ce27578f96a35578511bebad2c0c2f2689160c0fc63">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-dd12ae6e043b5085514f43691a710f3e65a0c3df93c8847ffd9678c8fae36c08">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-fa998d4e425d971dd546898cac4d1183dd4c10d4d95f19d4f4650d322a58505c">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-1c7f1643eece2cc9fdad3cc032d60826d541d6ad9123c9674ea1de20f4ef429f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-bd2c5decf64f436932af01d32dc08a35fb745c8aacf97952be9f8925fb94eed4">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-f4187b87464106220110abbc03675a30e6e5154248be0880f75e7b976419e3ef">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9d893b6b685830b2cdce2b05a925482b93c5407a7d7e2f2f76d159e55a089d6a">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-05b560e90f649549a7d98396179732b15c4af26b8df6fa5dc3b594b49eb548d0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2bef9e62baac1dabaf929cbb9113ad6c5711eb8ba364defebefd9cb9e65703e8">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-d0ca2cbd1895c7841755f2f8bb109ba17f6018a53f6615ab45445660c947742d">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2df8e46ef47cbebf23bfe3bba1e963ebc93d1bde4c09d6bc18cafd008810fe11">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-21ce711d17cbc8006a363b11e33f0b9009b3c7c7ba6885e9b6fccb64755ac0cd">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-692abf5d4051aa5afc5342cdd36c24879777744678ea1cf6a1a246f2d4cb60ea">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-1443b315ed3da71a04c3d532a46dd6fc837cbf67a9813d6d9b7dcaad4fe8f617">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-b034b26b4c5e31f76049c742cf80148731a686744a3dd0e440399521ad2491d9">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-52643cd4c649348b055c9659cda85a7570f974c47aaa7af473814cea851fb9a7">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-c1538ae90cc62160dbcb4be240cef50eaf241b88ce4cb391e5851e8b346d73bf">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-5e695a8cb0adf5ff5a530a922bc8f5b52d00972a99951f2bd690e4f44ccefae8">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-532dbd0e9c1f0d9d76715a27d174745824cfc68d0f7e499afa7e7e2c150b8d19">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-07b82a5305d283da9c6781f44a88c0ff4131b575fe5ee78a15d69abf6bd91b87">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-9b9ee0fb48f9f8815980bfe94d7d93d41bb9f1511cad6852a6d4f7e9192faf47">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-d3755355865e28005c894a10824920696b06e64e7c1c8765268908d56aa12261">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-d5c3314a4bfa1667da59c2072178f80a4654ac0f10f714b378496a69b6e21dcd">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-a0fda535693ff92e05311d4a63884ae0063e90eadeba20e958a7f9da51016ec5">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-de84bf86da7ce4481559b7037412128a4928746589b35575b9dd811c9f50b391">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-d17f4b74ce523c6ed011f1d7a3426dcbe430716a50803ee2afdb0f81e5d047fe">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-3266bd27efc68f506fa6c7d9ab41567c63a9fabf3d2d247f5719be551efbf250">+23/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>email-verify.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-80cd5ff8c6c8b4f7a588058618ed27b3316304b1786a92ea8ffbb4c3fda96ac5">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>password-reset.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-cef64f7d4eab756b7c68477e4fcc323cf8197832c92fd07e65f24dc71c9e3e80">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>signin-otp.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-a2a5f9edf38127ed8168a60248e51e6ba1b4026fe7e8366111f28e0502749e6f">+125/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>signin-passwordless.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-38ef73aa255432a72a30ab3e63da415b26598ce7b267a1e39957c26aefac1d88">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-1c287ea5a500ae373cd8c021d07dc0f3994db71077e892d7b5761baf5c2ef037">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Additional files not shown</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3459/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
c6af08fde4 rebase 2025-09-24 14:50:55 +02:00
David Barroso
63d73e639c chore (nixops): move to the repo (#3449) 2025-09-24 14:50:55 +02:00
David Barroso
8112625a0a chore (docs): update reference documentation for new SDK (#3448) 2025-09-24 14:50:55 +02:00
David Barroso
bbf1f6c11d chore (dashboard): use nhost-js in the workspace (#3446)
### **PR Type**
Enhancement


___

### **Description**
- Replace @nhost/nhost-js-beta with @nhost/nhost-js

- Update import paths across multiple files

- Modify build process to include nhost-js

- Adjust GitHub workflow configurations


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["@nhost/nhost-js-beta"] --> B["@nhost/nhost-js"]
  B --> C["Update imports"]
  B --> D["Modify build process"]
  B --> E["Update workflows"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>useGithubAuthentication.ts</strong><dd><code>Update import
path for SignInProviderParams</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-fad4875e0f07391dadcfc7e2dd481cafd5172dbb740c47e56fa75beb271618e1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useAppClient.ts</strong><dd><code>Update import path for
NhostClient and related types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-0aa83222c0e0eac6f0058070de2b199e5e78514cbba405eb98d3693329a93e65">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>createApolloClient.ts</strong><dd><code>Update import path
for NhostClient type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-6a34c5ed967837282403b4cfdf06e13e5effb32da891d682580b8174d047a454">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>AuthContext.ts</strong><dd><code>Update import path for
Session type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-1d4349638224a893f63b774d63a586880993cd3f25bbac14ab292ed79c4ccdf2">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>AuthProvider.tsx</strong><dd><code>Update import path for
Session type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-f892f5e3f5cbd580bf98d8ee1ed1856db61068f0e1dd44f90d93cbda98007af9">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>NhostContext.ts</strong><dd><code>Update import path for
NhostClient type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-329c728bcc3c746e90de94752b414361866cf66e63a5cc4ab7e39f0b5d3a0746">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>NhostProvider.tsx</strong><dd><code>Update import path for
NhostClient type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-a55dded8ccfbb390905487d9c46fcbe7dd0285ccf9a040d0b8c04642c39aa642">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>mocks.ts</strong><dd><code>Update import path for Session
type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-d1ef12c0f15123bb4e23a0c513fc3d9b5c16af421c71c2909fde3717e09a9d89">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tokenQuery.ts</strong><dd><code>Update import path for
Session type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-c86f0dec25fa37d82ed9765646ffaa9812f3b8b6f36d74056ab9e2dbe3416d0a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>testUtils.tsx</strong><dd><code>Update import path for
createServerClient</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-78f29250407edf853a353b48242d3cee59aa5724f38a60bb23bebdfc1ea2f9b5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nhost.ts</strong><dd><code>Update import paths for
createClient and session types</code>&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-3b1c138cd29a3002d1440ca1e438eeaecef10e3f98958e5985e1a133c0e51314">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>6 files</summary><table>
<tr>
<td><strong>project.nix</strong><dd><code>Modify build process to
include nhost-js package</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-e456dcfd6231480081b3c9a2a95204bd061853442d5e3a38330625d01cb1a6a1">+9/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>codegen_changelog.yaml</strong><dd><code>Update paths
triggering the workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-9ec3a4e9f1cac55592749fc8a4f8dc140fd6d59340f9e74ee01744e1c5a230e1">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>dashboard_changelog.yaml</strong><dd><code>Expand paths
triggering the workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-f500aa853d257ead7ba7e28d92191a2d18ab32a43c6e121d1e64454513a9de14">+24/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>dashboard_checks.yaml</strong><dd><code>Expand paths
triggering the workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-a8a8acdeffa4fff6d4fabd436cc1c2c377cda640d5028bd3dfcec5ef5df6e33f">+23/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>nhost-js_changelog.yaml</strong><dd><code>Update paths and
workflow references</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-f89bdd0c84297962882877ff469844b0541e95cb6437c9247722704af02ca426">+3/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>nhost-js_checks.yaml</strong><dd><code>Update paths
triggering the workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-4d839ed910ed156389855fb82fc583c1bafccef3691c01ba5170bf4dc4fcc19c">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Replace @nhost/nhost-js-beta
with workspace:^ version</code>&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3446/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
d37f31fc41 feat (nhost-js): move beta to nhost repo (#3443)
Enhancement

___

- Add auto-generated API clients for auth, storage, graphql, functions

- Include NhostClient wrapper in `src/nhost.ts`

- Add middleware for session refresh and token attachment

- Provide extensive tests and email template generators

___

```mermaid
flowchart LR
  A["createClient"] --> B["AuthClient"]
  A --> C["StorageClient"]
  A --> D["GraphQLClient"]
  A --> E["FunctionsClient"]
  B --> F["sessionRefreshMiddleware"]
  B --> G["attachAccessTokenMiddleware"]
  B --> H["updateSessionFromResponseMiddleware"]
  A --> I["NhostClient"]
```

<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>12
files</summary><table>
<tr>
<td><strong>client.ts</strong><dd><code>Add auto-generated
authentication API client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-4ef372e972ad443bba16fd25b9b721088c801a0d75db8102062ccbc00838a2f8">+3178/-0</a></td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Add auto-generated storage API
client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-4385e1bb86a6ee228b61e620357d826371939ae8cbe6ef674dcef108e2bf5ab1">+1016/-0</a></td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Add auto-generated GraphQL API
client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-cbd71dd3404704ff9d9c84273572fcac6f041532eef597de8a714249c08559c4">+180/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>client.ts</strong><dd><code>Add auto-generated functions API
client</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6c8d0225c010836d4a88cf726a477821cc64d33c167654bde18178350b4d20f5">+141/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>nhost.ts</strong><dd><code>Introduce NhostClient
orchestrating all services</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-68e0323ab180717ff0de35463496ca8eb3b8fc561462459f3c9cf178aa5754d6">+433/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export fetch utilities and
types</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6b258ccabf862a7fca001b4d49b3ea5a33e1cb11f28e773ae579e4ae5670ca21">+47/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>middlewareAttachAccessToken.ts</strong><dd><code>Middleware
to attach auth token</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-406a2ec81128d07056432f10bb888dbcaed0cfa5094fbd6133c3a6d5f710315b">+67/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>middlewareSessionRefresh.ts</strong><dd><code>Middleware to
refresh session token</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-90c69b666c6c6262a3d9dc9a9d9a0f863b12f0167edb49cba1301fc737cbb447">+77/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>middlewareUpdateSessionFromResponse.ts</strong><dd><code>Middleware
to persist session from responses</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a2c5449dd97df2d425297ec7f3b7628f405e3955cf46a9935afd8d1fe0ecdf7d">+91/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>storage.ts</strong><dd><code>Implement session storage with
subscriptions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-fc03ab2aa30e3c768df92d95608ddb18eee84b477dd1f1182ba70965e1b8f050">+106/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>session.ts</strong><dd><code>Decode and type user JWT
session</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2292867bf3b27d5d5887a247376b111c659a797dc92df9365d7e6b0bc64a5868">+83/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export main SDK entry and URL
generator</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6c48c1026ef2c9ccad3ce59368254e9278474cf4de5fdc0cf0f8659d10064bf8">+55/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>methods_ref.yaml.ts</strong><dd><code>Add codegen test data
for storage methods</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-f5d4c1cc3e0ab95288bfe009f15ca77360a98665cc621b7d299e8316c9e56001">+1009/-0</a></td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Add GraphQL client
documentation tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c7b7dab18f108770bcff06dc83cc9a34a5ee72c5021a035129a264a968f7d5ff">+376/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>storage.test.ts</strong><dd><code>Add storage client
integration tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-19d55fc74c55988fede4d554a6bc5e052987219d1d5bdadd30ef52d55d1e9d78">+258/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>functions.test.ts</strong><dd><code>Add functions client
integration tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-513ce67d4002bcaa8dc01d8133ffb3a0c39c430604ba3c2d17ec6c0f7ad6f1a9">+169/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>graphql.test.ts</strong><dd><code>Add GraphQL client
integration tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-488fd58d97b84872c4b9d160ddd54d17f198d7dfe2e3508c84491bb7b2509e1e">+199/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>enhancedFetch.test.ts</strong><dd><code>Add enhancedFetch
middleware tests</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c5e61a5e461b17c08bae579aca5ef65e6b2b333df8c770b4f380f98f24c04e8a">+214/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>docstrings.test.ts</strong><dd><code>Add main usage
documentation tests</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-b97eb064c8d8cbd8197f40f06117348a994b0f6d42a73d2e0a47cbb226cb4b08">+135/-0</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>vite.config.ts</strong><dd><code>Configure Vite library
build outputs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-07972b1690be8a3a1bc3d77cd95767678bd3bcf7ef3708287475027606d59fb4">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>101 files</summary><table>
<tr>
  <td><strong>codegen_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-9ec3a4e9f1cac55592749fc8a4f8dc140fd6d59340f9e74ee01744e1c5a230e1">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>codegen_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a0832a0d24c56aeff885d0163d2d0a54af9dd042dfbbe0fd5eba7c9997de7089">+71/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>dashboard_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-f500aa853d257ead7ba7e28d92191a2d18ab32a43c6e121d1e64454513a9de14">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>dashboard_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a8a8acdeffa4fff6d4fabd436cc1c2c377cda640d5028bd3dfcec5ef5df6e33f">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>gen_codeql-analysis.yml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-1966962fce5fe923e067079cd74ef10ea43a99f60b5c251f33d204fc4d99d1e8">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>gen_schedule_update_deps.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-ae003e22c1e5cbf186e1749d77dec35965e521d2583ba8cf45fcb1c8f300e177">+1/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>nhost-js_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-f89bdd0c84297962882877ff469844b0541e95cb6437c9247722704af02ca426">+34/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>nhost-js_checks.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-4d839ed910ed156389855fb82fc583c1bafccef3691c01ba5170bf4dc4fcc19c">+84/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>wf_build_artifacts.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-63d6f3e2e5894df4d88cf2c82b3d0c90e7b0b7c8ca9da25a3d46f35f15270fb0">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>wf_check.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c2ecea6736037ba6304681d744d612d44d7681788d2fbc58ce223cf52ecefa43">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>wf_check_changelog.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-099ad6009f7d08d3b6534abe4abf8c8a75f6c3761d4117751fc35093affd7456">+64/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>wf_dashboard_e2e_staging.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a7fa29d56c482bdb946a35ffa66002731a16f69b2278e5f10244051fd9ff0e3a">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>wf_deploy_vercel.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2cefabe2c777ef34c091ee0f8d44ece60e4121814fa8cc38fe05d929fea197bc">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>.golangci.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5">+94/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6d79915225209d5e0cfd0fab415e6b47444150b9325de5ec7fc711e17b83eba1">+29/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-4d443b583548a9a0ad49d07bf78df8b48c80a5e9b0d34b9ad3e0ea47afd51843">+58/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>base.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a30fff7b85a22862eb523e2235373014ce9d8412cc38f07af6f6e544338fb8d8">+34/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>frontend.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-13a93670eb5748484a6233ccb1d6823fcb2a98adc9cd43e5c41ed45b59a7623c">+25/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>library.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-76d2855ab23ffd9b57974823f228e96ae4edc664ce3f409ed70a467d3e4f6ecd">+30/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>node.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-122859777dca6e7ce0d8c8ea00fc2d64a9568cfb2646fc9ca22741169445988c">+23/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>vite.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-b07613487a22297799a78f6acfbbdb31013138490f500f9e5e57c0393e8b6773">+14/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>project.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e456dcfd6231480081b3c9a2a95204bd061853442d5e3a38330625d01cb1a6a1">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>flake.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0">+17/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>go.mod</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+17/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>go.sum</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+27/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>node_modules.nix</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-0e19dd1f3b075831004f05cbbad45f86cb31ea96e46cab75840719782e4a8977">+14/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+16/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>.prettierignore</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-23eddcec7f8cea827569c56f44bf9281373cfaf6ba044c41933e67bac086e553">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>CHANGELOG.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-b6200685d3e776a9e74d320e54959fe992d1a3c534df1634013979b6685438ba">+29/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Makefile</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a4285b4628ee4e3a8e950a7091d4769d9fc0f89783483cff01382a468f583eb0">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-32a1491b95260b677b05569fe11db6fe14aa7b380c7ef6422041949311f103a2">+88/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>auth.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-0fd48ea2c8ccee113366e748ddb97e75dd5eb9bc58385ce6b1ac1578dcbc54fb">+2548/-0</a></td>

</tr>

<tr>
  <td><strong>storage.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-5aabac204944eab4fe6fdd2e6c47c215f74df04347f737cb6c68c10b24c3de2e">+1186/-0</a></td>

</tr>

<tr>
  <td><strong>.secrets.example</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-825388a18ee7fa60325f209d3c4141df481e1245ef2d944482b8b84a95611533">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>crash.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-38c3348a81607f21101d8ecfc1cbaee87f9716a2e54c9be5fa301057f40bb03a">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>echo.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-70d2dbad876749b22eaa28784c7796bea615e8a4e17810bf36da113dccab1a03">+49/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>helloworld.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-b37568d59ded3a9cabaa4d97c80e5dd1dcc2716903d9e10171cc7ec4f3fb0592">+19/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6310cb8549b62daf0fd2e22c5549e5cd777483509808651c44b99368dbed7e26">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tsconfig.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-534d28a667fcd2c10da5a5c1bfccbeca59d82555ee6db474dd3a1743d82eebb3">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>config.yaml</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-0774c4ff3547464cf6fcb5074b6c62e0b03e5cf2c17caf984e9016f762a4b15a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-9a02c811fff048cc400216bcdfc59c8202818855ea2c35797d1459c50ac9562d">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-7229d13b3c44f9d7c70e9c70aff01e065a411441d507faa33c34b1df9202581c">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-311e8703438930dd999b29ac6ce901e9f19688d8f341cacc0630880e2b7e7cf1">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-8ff0e787057342c2674d033c1f329c6b7d4b983e67bfa7028c9bd7dbd6f5ef95">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-85a0fbd068e697a07716b2f327589c7688a197538d7feae9d664fdd628f1ee4c">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a8acfab7fce4f1838b46a1711f204a8b04c112d9098039952cf3a8c3c4d898ea">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-98bb8bf7ea61df723bb0fbe205c9144ef84852e7010347a90fdbc349ade9db9d">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-d52770dd6b829b6135e07ee3405f67a28a5b827bad3d601e88e5c8583ece51f6">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-95f78669412b72ce1ee651e1dd5c329288f2d9c67fffe20788302e1c8e9e955a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-63bfa6f9d4bb884071932aa283cdaf3563c2a177b4060aafd99075acfa05f38f">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-d531e84efb5e05786d850aa6e212c16f89fb233af5bac7d0c4113c6250c144b6">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-98076a584be7db55cfd4d92ec3f20d1f88d9d3d881e81deccef383cbfd4a4047">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-63827d0319a9d1c10474b3903df66ae1ad1affa8c9fe205ea24e4e4e1ff40654">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e28f2c9ba5d6848999325e90fad5beb479581a374be81ce3f369de08c811a1f5">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-526c658236db49eb75e18f36ef172c56ff543ac1b0737860c866f8b52d9bd565">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c28e94423ba8964f22a65c32d734970fff83b141c987d1bf674fe5d5501a6a06">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-9479f2a3dbbf14571470fecfe9bd5e9c29879e6087f543de618f5c1f41bf60c7">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-0535f56f36dee6fb906aab7c8f253f94583debf74ee6f3f993c4f71c8f641a11">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-ec9321ee05ebec833b58833792edd57b2d884530bd4b27ab475883badcc98470">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-49fde11f74c8c34a9665206f7f5bb5f08fabb997b4c455c4780328e0df472d47">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-47a77657f3ac07d413eb85a8d174991bb20090ace909ae7f83081ccbae3974b6">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-1d0f311231edfc6d4484bb8d2b9dbe0dd40a923071f4ebd5e8db900064919987">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-df66051d6fa91604c084d7bb995ea734474ee7cf9dfd239e1e0d52a7814f89c1">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-b33b21342a328ed795793feb82655b2e7753eddc1f017519ece05053e4b3af54">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-a608203615c0a0aef08d8d3ac2c848e4491e81c158e9fa107a787149500304d7">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-1ce8a9f999a052d4af99c53980b1f6e52324664f4651d5b7e0665312f133b3b7">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-5e8b522bf33bd3cba00ae0d555e24c679ce3bbc4869d930fe850529f3b7489c3">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6994443cfe2326b3d000ae3d8c5422a51f708f9cd2b49bf3f6c2cef6b9d28e9a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e91a5315961a4d59925c55a913d866422d0e80dde508223c1e7eee40010319ab">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e18bf884ce429cca39399b1ad533cad88c83316b4ada5263096f37ba86242aaf">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-96f4d39c000ecf61576d638efe27813ca3050a8d8d663e7c191362a48f42d495">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-7637885d255e32f85e9e2bc799084249b1c3b46e46913b9cd3b8ecbb3e9ba9b0">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-efc96bb60e6337122c86898884dc55ef5a89da7033e388775ef719346a7d4220">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-cf9e7d4ccffeb2a75ac9b592b496c32d3fe55ef8924cf727e2833b80dc84e561">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-bb0618c7dedf0d6f47b3d6d98d8ab4ec5a9c37781958fb303d9f24c1ab958fe4">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c3977f6b1de50fa3322f7479faef37b4fdfbf2f5845c67cf212e911539bc3b9e">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-f31b21b32a2c84d5b8cf306703f8ae9a946dc1c624d532e37b8599da049cc69e">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-ea310f1bd63e356ddd1ffa017aaac70cfae5da292b67aac4fe79c1b777319f04">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-7669f7091403361bb88442de48c9e2a9658e154bb5692102b0e82319e6337f39">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6ba271e14c45373f8cef9187ebd6ffd0ad9c44e238532ccf63cbe826249a19b1">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6b326112e1aa4cfbc000b91c3b6378bc8ae36e48840a081a830c94c51f8a4500">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2c5702df1f1375c48883364c0f2fb986b250be8ce1556b8d029ddcd55ff90714">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-c9ab69c5172e80137a2e77ba58394790ed15824f094e5504c876d90e441a9d28">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2bd5c6d47472860c78b7fece329c2c2f77004943090f7b1844068e5400b3a0d2">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e095798c1d0a20b895153394a89384a7e76a4be72127cf820a5b789c2427e9cf">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-604842630cf27fec737fe06d8e10d867b4bfde7847784840cdc3d8637f3c3116">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-e062419844aa5d1efff234153f0b16e72a267631c878fcd9af4de1a25f4bbb1a">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-55e24992a9892fd6d5cf6eeacd42d43ea6ade99977b82ce345a6409201566b2a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-3f884d5151b3f8f8e22f7cf60abb36474959597e92bb056e33a292c1cc6be597">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6a3f00a85e4f72b8ed55225102d0863539e73f876f6d29ec60f99fead969d883">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6b4505927b8e2abbf0b0925d981e1703cf5ea557b1534c07dbf912310d391021">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-28828a2828bc3e41f9956a22e695d0f1e96a997db47106b83886a4ecd2e1354a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-09f683d3491ec520132dbbe2610bfa59c5ed81682b5175b347cd11ad1019ae9f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>body.html</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-d1b04ce22cfa7bf33673c06ff30673fd18cff5467093c3f1e4435a08136aaeb1">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subject.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2d991a9036664feca0f30b513c231551ba7d0667809410b8a6703a7298ba2b2f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-db5537429694d86082c34ac97881b7811aa1c79ee496dd79c248494698ba3b83">+23/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>email-confirm-change.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-0bf93b57a4a18ccfa08b72816a7eea2c14c00ce92d9a07249405805500c8bb45">+129/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>email-verify.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-67bf177366a960b6f068b1c8802f5c200b6ce6069f8d5e61c632aa4191b8adca">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>password-reset.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-6e2461fe97310e38e2e4eed0e20570c5a51636989b95c646661f7bc04b37dd5d">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>render-emails.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2bc9d596f730e2c72f02a1f57d6636136f898d81396493d1fcb803cae3f7351e">+82/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Additional files not shown</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3443/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td>

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

</details>

___
2025-09-24 14:50:55 +02:00
David Barroso
0367dfae00 feat (general): clean repository (#3432)
Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
Co-authored-by: Nuno Pato <nunopato@gmail.com>
Co-authored-by: David BM <correodelnino@gmail.com>
2025-09-24 14:50:55 +02:00
github-actions[bot]
6ad1cfcb13 chore: update versions (#3476)
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.37.0

### Minor Changes

-   cc98f33: fix: rename filename typo

### Patch Changes

-   25c0ffa: fix (dashboard): Parse tablename correctly into SQL query
- 8812d9d: feat (dsashboard): Simplyfy column and row controls in
database view

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-23 15:14:19 +02:00
robertkasza
25c0ffa83b fix (dashboard): Parse tablename correctly into SQL query (#3483)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Fix SQL identifier placeholder to parse table names correctly

- Add `toPascalCase` utility and use in E2E tests

- Update create-table test to assert `id` column header


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["toPascalCase utility"] --> B["create-table.test uses PascalCase"]
  B --> C["prepareTable creates table"]
  C --> D["fetchTable uses %I placeholders"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>create-table.test.ts</strong><dd><code>Update E2E test
to use PascalCase table names</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/e2e/database/create-table.test.ts

<ul><li>Imported <code>toPascalCase</code> from utils<br> <li> Switched
tableName generation from snakeCase to PascalCase<br> <li> Added
assertion for <code>id</code> column presence</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3483/files#diff-1e7aa9f3e379ca90a94b82c14be48e2c98a722d85ee1b0785a082b7076d8e58c">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>utils.ts</strong><dd><code>Add toPascalCase utility
function</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; </dd></summary>
<hr>

dashboard/e2e/utils.ts

<ul><li>Introduced <code>toPascalCase</code> function for string
conversion<br> <li> Default divider set to space for word splitting</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>fetchTable.ts</strong><dd><code>Use identifier
placeholders in SQL query generation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/hooks/useTableQuery/fetchTable.ts

<ul><li>Replaced <code>%1$s</code> with <code>%1$I</code> identifier
placeholders<br> <li> Ensures proper REGCLASS SQL parsing for table
names</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>mean-cheetahs-greet.md</strong><dd><code>Add changeset
for SQL table parsing fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/mean-cheetahs-greet.md

<ul><li>Added changeset entry for dashboard patch version<br> <li>
Documented SQL table name parsing fix</ul>


</details>


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

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

</details>

___
2025-09-23 10:30:55 +02:00
David BM
cc98f33440 fix (dashboard): typo in test filename (#3482)
### **PR Type**
Tests


___

### **Description**
- Add comprehensive tests for `DeploymentServiceLogsHeader`

- Mock project hook and GraphQL service label query

- Simulate user selecting service and submitting regex

- Validate `onSubmit` callback invocation


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>DeploymentServiceLogsHeader.test.tsx</strong><dd><code>Add
DeploymentServiceLogsHeader tests</code>&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/orgs/projects/deployments/components/DeploymentServiceLogs/DeploymentServiceLogsHeader.test.tsx

<ul><li>New test file for <code>DeploymentServiceLogsHeader</code>
component<br> <li> Mocks <code>useProject</code> hook and GraphQL
<code>useGetServiceLabelValuesQuery</code><br> <li> Sets up MSW server
and environment variables<br> <li> Simulates UI interactions and asserts
<code>onSubmit</code> call</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3482/files#diff-952e9bf5cf78ce4bfc41a326f001a2fc4d781571bfa6ee8e441d3c50ff6ad495">[link]</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-09-19 18:12:02 +02:00
robertkasza
8812d9dcaf feat (dsashboard): Simplyfy column and row controls in database view (#3474)
### **PR Type**
Enhancement


___

### **Description**
- Remove insert column functionality from DataBrowser grid

- Simplify controls: only "Insert row" button remains

- Clean DataGridBody: remove row placeholders and column insertion

- Remove unused props and imports across components


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>DataBrowserGrid.tsx</strong><dd><code>Remove insert
column control from DataBrowserGrid</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


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

<ul><li>Removed <code>onInsertColumnClick</code> prop in
<code>controls</code><br> <li> Kept only <code>onInsertRowClick</code>
handler</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3474/files#diff-5910fd8730fbe65c60aa5f54031989a7868e944d5958f69535e5684b72ca1396">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DataBrowserGridControls.tsx</strong><dd><code>Simplify
insert controls to only row</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>


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

<ul><li>Removed dropdown menu and <code>onInsertColumnClick</code>
logic<br> <li> Simplified UI to single "Insert row" button<br> <li>
Cleared unused imports (<code>Dropdown</code>, <code>RowIcon</code>,
<code>ColumnIcon</code>)</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3474/files#diff-640ce3e15c8d5f35d8bbe74792c59493afe5bc69873d2a40f81233da2b02661c">+7/-65</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DataGrid.tsx</strong><dd><code>Remove onInsertRow prop
forwarding</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/orgs/projects/storage/dataGrid/components/DataGrid/DataGrid.tsx

- Deleted forwarding of `onInsertRow` prop to `DataGridBody`


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>DataGridBody.tsx</strong><dd><code>Remove row insertion
placeholders</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; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/storage/dataGrid/components/DataGridBody/DataGridBody.tsx

<ul><li>Deleted <code>InsertPlaceholderTableRow</code> component and
row-insert code<br> <li> Simplified empty state rendering without insert
slots<br> <li> Removed unused imports and key-generation logic</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3474/files#diff-e5cdb81b2c99dbd7b9a669a63ed503f6964e9c0bc91ca2c0e61df5334eaa7a1b">+61/-143</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DataGridHeader.tsx</strong><dd><code>Drop column
insertion button</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; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/storage/dataGrid/components/DataGridHeader/DataGridHeader.tsx

<ul><li>Removed insert column button and <code>PlusIcon</code>
import<br> <li> Cleaned up unused <code>Box</code> and
<code>Button</code> imports</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3474/files#diff-3f5f16ea95a730255a07806c96b55fd4946c92eebcb869cdf83ad92bfe034b4c">+0/-18</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>nine-mayflies-explain.md</strong><dd><code>Add patch
changeset</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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/nine-mayflies-explain.md

- Added patch changeset metadata for `@nhost/dashboard`


</details>


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

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

</details>

___
2025-09-17 14:42:05 +02:00
github-actions[bot]
bf17981596 chore: update versions (#3453)
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.36.0

### Minor Changes

-   a30da08: feat (dashboard): add custom types to column types

### Patch Changes

-   73a7ba8: fix (dashboard): Show errors in row permission rule form
-   397bfc9: fix (dashboard): Parse foreign key relations correctly
- 2f4b376: fix (dashboard): allow permission variables with in operator
- 88836f3: fix (dashboard): use correct fallback endpoint for migration
in the CLI
- ba3c49e: fix (dashboard): Show nested relationships in row permissions
-   92e71a6: fix: minor fixes to csp
- 81716d9: fix (dashboard): Show validation error on save when editing
database columns

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-16 13:41:37 +02:00
robertkasza
2f4b3768c7 fix (dashboard): allow permission variables with in operator (#3461)
### **PR Type**
Bug fix, Tests, Enhancement


___

### **Description**
- Refactor FancyMultiSelect to controlled component

- Enhance RuleValueInput `_in` operator for system variables

- Add unit tests for RuleValueInput variable selection

- Include `Allowed-Ids` in permission variables list


___

### Diagram Walkthrough


```mermaid
flowchart LR
  FV["Form value"]
  GD["getDefaultValueForMultiSelect"]
  FMS["FancyMultiSelect"]
  OC["handleOnChange"]
  SV["setValue"]
  FV -- "parsed by" --> GD
  GD -- "initializes" --> FMS
  FMS -- "user selects" --> OC
  OC -- "updates" --> SV
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>fancy-multi-select.tsx</strong><dd><code>Make
FancyMultiSelect controlled and test-friendly</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/components/ui/v3/fancy-multi-select.tsx

<ul><li>Export <code>Option</code> type<br> <li> Use controlled
<code>value</code> instead of <code>defaultValue</code><br> <li> Sync
selected via <code>useEffect</code> on <code>value</code> changes<br>
<li> Add <code>data-testid</code> to badge span</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>getAllPermissionVariables.ts</strong><dd><code>Add
Allowed-Ids system variable</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; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/permissions/settings/utils/getAllPermissionVariables/getAllPermissionVariables.ts

- Include `Allowed-Ids` as system variable


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>RuleValueInput.tsx</strong><dd><code>Enhance
RuleValueInput for in-operator variables</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


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

<ul><li>Import <code>Option</code> type<br> <li> Add
<code>getDefaultValueForMultiSelect</code> util<br> <li> Implement
<code>handleOnChange</code> for permission variables<br> <li> Switch
<code>FancyMultiSelect</code> to use controlled props</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3461/files#diff-e3198b245b5963e81e4566758b7d60c8d2784a7ca0ad0b17b354b33074ef1bb0">+57/-11</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>RuleValueInput.test.tsx</strong><dd><code>Add tests for
RuleValueInput selection logic</code>&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/RuleValueInput.test.tsx

<ul><li>Add tests for <code>_in</code> operator variable selection<br>
<li> Mock project and permissions hooks<br> <li> Verify system and
custom variable behaviors</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Miscellaneous</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>signup.tsx</strong><dd><code>Cleanup console logs in
signup page</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>

dashboard/src/pages/signup.tsx

- Remove debugging `console.log` statements


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>dry-snails-type.md</strong><dd><code>Add changelog for
permission variables fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/dry-snails-type.md

- Add changeset entry for dashboard patch


</details>


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

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

</details>

___
2025-09-16 13:38:25 +02:00
robertkasza
73a7ba82ae fix (dashboard): Show errors in row permission rule form (#3471)
### **PR Type**
Bug fix, Tests, Enhancement


___

### **Description**
- Improve row permission form error handling

- Integrate `FormField` for validation feedback

- Update tests using `TestUserEvent.fireClickEvent`

- Extend MSW mocks for metadata and table queries


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>TransferProjectDialog.test.tsx</strong><dd><code>Replace
`asyncFireEvent` with `TestUserEvent.fireClickEvent`</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-d4ebdb8af76a7c9e73606708718c3448445545259ad553d73b6d322408e3eb8c">+3/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>RowPermissionSection.test.tsx</strong><dd><code>Add
comprehensive tests for row permissions section</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-2a32fbb9eda12ec8eb93746c5c8b171e8ae20d18e661a5e2eb0c4996fee8376b">+211/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>hasuraMetadataQuery.ts</strong><dd><code>Add
`hasuraColumnMetadataQuery` mock endpoint</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-2828f4a1163f0d281abf2517e76fc9dd393bb870478aea874019a42f9c4b7ac3">+260/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>tableQuery.ts</strong><dd><code>Extend actor table mock with
column and row data</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-fdb6ad2a7e58c374f3a6772219e7f7e72ca2927def74ec75893b064caba12639">+40/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>testUtils.tsx</strong><dd><code>Add `fireClickEvent` helper
to `TestUserEvent`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-78f29250407edf853a353b48242d3cee59aa5724f38a60bb23bebdfc1ea2f9b5">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>4
files</summary><table>
<tr>
<td><strong>ColumnAutocomplete.tsx</strong><dd><code>Add `className`
prop and merge via `cn`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-c89efa530042890e7d6277c2e3c763cb7c9b9fc1d7c14c62839f4cf7c42528f7">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>RowPermissionsSection.tsx</strong><dd><code>Refactor filter
logic and default row check type</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-663956d9adae1f6255151599b1cbd6ad03fea1246e87ab89329fcddcdbec2b20">+12/-28</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>RuleEditorRow.tsx</strong><dd><code>Wrap column input with
`FormField` and error styling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-a7a1d2aa882735a2b9cfb41e95b05c6777d706570eec5deec6bf5d2381a51252">+47/-28</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>RuleValueInput.tsx</strong><dd><code>Introduce
`RuleInputWrapper` with validation messages</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-e3198b245b5963e81e4566758b7d60c8d2784a7ca0ad0b17b354b33074ef1bb0">+43/-6</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>OperatorComboBox.tsx</strong><dd><code>Reset value and clear
errors on operator change</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-bf3aa91fe39fe48522262f0f908b7d151ce75cb005ec50fe38c2429d0e81ddb1">+4/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>vitest.config.ts</strong><dd><code>Enable silent logging in
Vitest config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-09548f3bfb7c005a1d2f3d9d7f1f5d00c608d821572250400d92eda63ae7251a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>brave-fans-sit.md</strong><dd><code>Add changeset for
dashboard patch release</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3471/files#diff-25c255427ffb291f4e9d7ab56622f3fee8bc9ea2ca0b38242d9b7e41273bea88">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-16 10:45:39 +02:00
robertkasza
ba3c49e443 fix (dashboard): Show nested relationships in row permissions (#3473)
### **PR Type**
Bug fix, Tests, Enhancement


___

### **Description**
- Add MSW mock for nested relationship metadata

- Add test verifying nested relationships display

- Simplify `CommandList` rendering logic

- Introduce `fireClickEvent` helper in tests


___

### Diagram Walkthrough


```mermaid
flowchart LR
  metadata["\"MSW nested metadata mock\""]
  component["\"ColumnAutocomplete component\""]
  ui["\"Displays nested relationship options\""]
  metadata -- "provides nested data" --> component
  component -- "renders options" --> ui
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>4
files</summary><table>
<tr>
<td><strong>ColumnAutocomplete.test.tsx</strong><dd><code>Add nested
relationship test and router mock</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-2da9237ad932fa46d684a3c8fe3afb6686af561e136e6aea5fa588f3979e131e">+76/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>hasuraMetadataQuery.ts</strong><dd><code>Add
`hasuraRelationShipsMetadataQuery` mock</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-2828f4a1163f0d281abf2517e76fc9dd393bb870478aea874019a42f9c4b7ac3">+98/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>tableQuery.ts</strong><dd><code>Add `town` table MSW mock
data</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-fdb6ad2a7e58c374f3a6772219e7f7e72ca2927def74ec75893b064caba12639">+42/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>testUtils.tsx</strong><dd><code>Add `fireClickEvent` helper
method</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-78f29250407edf853a353b48242d3cee59aa5724f38a60bb23bebdfc1ea2f9b5">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>ColumnAutocomplete.tsx</strong><dd><code>Simplify
CommandList and support nested relationships</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-c89efa530042890e7d6277c2e3c763cb7c9b9fc1d7c14c62839f4cf7c42528f7">+45/-85</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>useTableQuery.ts</strong><dd><code>Remove extra blank line
in hook implementation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-13ce245133be3c4bbcd9fe302cacd42e3e8472dc57d8ce27371e59818240d942">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>new-eels-run.md</strong><dd><code>Add changeset for nested
relationships fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3473/files#diff-5ed65e898211e2d9e7614fed8b4bccc0c501b0767a564baaace82ca7bd185d36">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-16 08:33:08 +02:00
robertkasza
88836f3b1f fix (dashboard): use correct fallback endpoint for migration in the CLI (#3472)
### **PR Type**
Bug fix


___

### **Description**
- Remove `/apis/migrate` suffix in migration fetch URLs

- Update default fallback Hasura migrations API endpoint

- Add changeset entry for migration endpoint fix


___



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Bug
fix</strong></td><td><details><summary>9 files</summary><table>
<tr>
<td><strong>createColumnMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-806e4808866ca6ba76c359ef8ae68346cd83f8bec034f6057210b86c2cfd11ec">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>createTableMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-e033710673c18c205655684e8a930963aff2363f314faa8d7dd36bd645e8a3f6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>deleteColumnMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-b0c2fc34ff94579ef93ee14aae60a6d2df3d2986014d8740f56508f321dec8cb">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>deleteTableMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-2e192aca09dca7ff2a9cb105daa94330629e1fccfdf9a1bdee9fdba510c23abd">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>managePermissionMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-6618ac02347ee4e55aaeacece7894330d86f9716d8fbd9a907a11c9a977461d2">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>trackForeignKeyRelationsMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-8562c65950e2ff578d8db135790713bbff282ff6a61ff98bb5558a51944927d2">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>trackTableMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-c7cb8539796fe51acbde04b83f33bbce0474284e3a3840d65eb8cd9b21f951bc">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>updateColumnMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-11cb8c97ec6d26491538e7032840513127cb4044b9ff3a8890e3602c4ae4a6c6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>updateTableMigration.ts</strong><dd><code>Remove
`/apis/migrate` suffix from fetch URL</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-7817a436afa62e58c14d5b0570093de17b57c8abc5b17ad7f191465b75a86cb2">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>env.ts</strong><dd><code>Update default Hasura migrations
API URL</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-38801f053432e037993a6c8359ff512d7a6cfa9579597b92449f12c05c9c14e9">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>neat-coins-hide.md</strong><dd><code>Add changeset for
migration endpoint fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3472/files#diff-198c242704f17162fd3bc020b3e0284494eb752bb0c27866953742a2c08f2026">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-12 15:48:57 +02:00
robertkasza
81716d9d9c fix (dashboard): Show validation error on save when editing database columns (#3464)
### **PR Type**
Bug fix


___

### **Description**
- Simplify useFormState name path

- Fix error path in ColumnErrorMessage

- Include patch changeset for dashboard


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ColumnEditorRow.tsx</strong><dd><code>Simplify
useFormState name path</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;
</dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/components/BaseTableForm/ColumnEditorRow/ColumnEditorRow.tsx

<ul><li>Removed redundant <code>columns</code> entry from field name
array<br> <li> Targets errors specifically for column name field</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>ColumnEditorTable.tsx</strong><dd><code>Fix error
message path usage</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; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/components/BaseTableForm/ColumnEditorTable.tsx

<ul><li>Check <code>errors.columns.root.message</code> instead of
<code>errors.columns.message</code><br> <li> Ensure correct validation
message in HelperText</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>unlucky-terms-hang.md</strong><dd><code>Add dashboard
patch changeset</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; </dd></summary>
<hr>

.changeset/unlucky-terms-hang.md

<ul><li>Add changeset entry for dashboard patch release<br> <li> Note
validation error display fix</ul>


</details>


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

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

</details>

___
2025-09-11 15:54:28 +02:00
robertkasza
a30da08e9b feat (dashboard): add custom types to column types (#3442)
### **PR Type**
Enhancement


___

### **Description**
- Add custom column types to database tables

- Improve handling of user-defined data types

- Update UI components for custom type support

- Refactor column type normalization and validation


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Column Type Handling"] -- "Extend" --> B["Custom Types"]
  B -- "Update" --> C["UI Components"]
  B -- "Refactor" --> D["Type Normalization"]
  D -- "Improve" --> E["Data Validation"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15
files</summary><table>
<tr>
<td><strong>Autocomplete.tsx</strong><dd><code>Enhance Autocomplete
component for custom types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-b185666714ca832d5c45c366618b79862f6b4f03e4f7657c78afa38a52e7c4c2">+27/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>BaseColumnForm.tsx</strong><dd><code>Update BaseColumnForm
to support custom column types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-9750f922830f8637c2d1b81c5e40128bc4fca7a9349a5314e421353d73bf6f38">+43/-16</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ColumnEditorRow.tsx</strong><dd><code>Modify ColumnEditorRow
to handle custom types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-264f067037cfa5d08dbb97964a9ddb8f6296129441682b78f6984c37051ea3f8">+37/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DataBrowserGrid.tsx</strong><dd><code>Update DataBrowserGrid
to display full data type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-5910fd8730fbe65c60aa5f54031989a7868e944d5958f69535e5684b72ca1396">+6/-11</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DatabaseRecordInputGroup.tsx</strong><dd><code>Adjust
DatabaseRecordInputGroup for custom types</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-52b5499e9afc3c5e4929046b487de649d421dda3250a4131462ec710575abc12">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>prepareCreateColumnQuery.ts</strong><dd><code>Modify
prepareCreateColumnQuery for custom types</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-9b3695fb28760e86fc966e2149082b798664f145a8b64ef66184e55a905f5071">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>prepareCreateTableQuery.ts</strong><dd><code>Adjust
prepareCreateTableQuery for custom types</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-1458307108df70f7037fa516ccab3a028533cf23f752778fcb09ed8d326530e5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fetchTable.ts</strong><dd><code>Modify fetchTable to include
full data type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-a58cb7660972ff84991cdd9777de5cf0834485072cbd421f8809638227c36820">+36/-28</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>prepareUpdateColumnQuery.ts</strong><dd><code>Adjust
prepareUpdateColumnQuery for custom types</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-ef957000505e4ba437656c38b4371d4041471ce5a4c193ef381aa55e0c51c308">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>dataBrowser.ts</strong><dd><code>Update type definitions for
custom column types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-33c6810dbd7e2910c86a15009467a348f064380b0e1dd787ef320b4e7543403b">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Add new utility for normalizing
column types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-df62570fe4a332639b789274e3db4ea98cc695bc306f6dc1692851280bdb2fde">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>normalizeColumnType.ts</strong><dd><code>Implement
normalizeColumnType utility function</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-6bc7935091971eb83f99ba700e11f7214599d4d86e41f96d0d8295bdd6441d8f">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>normalizeDatabaseColumn.ts</strong><dd><code>Modify
normalizeDatabaseColumn to use new utility</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-e00d1c71fcbc63286896b597ce820388987e0a7edb005bda8a13bb0c0813434b">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>postgresqlConstants.ts</strong><dd><code>Update PostgreSQL
type constants and groups</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-b497da90feca5bff94b0d38b69e519d171d43acc292098054d672a73a89b4717">+6/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DataGridTextCell.tsx</strong><dd><code>Adjust
DataGridTextCell for custom type handling</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-d1ed74fe8eb7a61053dfe908966311e13915ad2127ee107b62f725d6c5282492">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>prepareCreateTableQuery.test.ts</strong><dd><code>Update
tests for custom column type support</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-348ba7ca6fc037a9d0de76a24efc36846c634d82755bbf33dd5062a7face06ec">+232/-198</a></td>

</tr>

<tr>
<td><strong>prepareUpdateColumnQuery.test.ts</strong><dd><code>Update
tests for custom column type changes</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-65420c7003a95c03b31fc4b0e45f6a22387f81c1ce8e41a2d7cb89cc44dbda26">+557/-494</a></td>

</tr>

<tr>
<td><strong>prepareUpdateTableQuery.test.ts</strong><dd><code>Update
tests for custom column type support</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-57c2f882497d653700d68905bb54c891592a6bf302040d3008d624900f1bdf64">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>getInputType.test.ts</strong><dd><code>Update tests for
input type handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-01a507828b9440cd99bd0722ab5b577d8dd1774f2320168ad88222138960e831">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>normalizeDatabaseColumn.test.ts</strong><dd><code>Update
tests for database column normalization</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-a451c29ffa35243d4dbb462e3a048088c514f8056effedf782fcc57d5235e338">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>rich-dragons-attend.md</strong><dd><code>Add changeset for
custom column types feature</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3442/files#diff-bb90b20cf816a7c7bfc628f9daae90b9deff5d8c00f36361190d6147b46fb6be">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-08 14:24:43 +02:00
robertkasza
397bfc948c fix (dashboard): Parse foreign key relations correctly (#3458)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Pass updated table name to refetch queries

- Extend `onSubmit` callbacks with `tableName`

- Strip quotes from foreign key column names

- Add and restructure tests for extractor


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>DataBrowserSidebar.tsx</strong><dd><code>Update
refetchQueries with new tableName</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/database/dataGrid/components/DataBrowserSidebar/DataBrowserSidebar.tsx

<ul><li>Accept <code>tableName</code> in <code>onSubmit</code>
callback<br> <li> Use <code>tableName</code> for
<code>refetchQueries</code> key</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>EditTableForm.tsx</strong><dd><code>Extend onSubmit to
receive tableName</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>


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

<ul><li>Change <code>onSubmit</code> prop to accept
<code>tableName</code><br> <li> Pass <code>updatedTable.name</code> to
<code>onSubmit</code></ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>extractForeignKeyRelation.ts</strong><dd><code>Strip
quotes from extracted column names</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/database/dataGrid/utils/extractForeignKeyRelation/extractForeignKeyRelation.ts

- Remove surrounding parentheses and double quotes from `columnName`


</details>


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

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>extractForeignKeyRelation.test.ts</strong><dd><code>Restructure
extractor tests and add cases</code>&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/utils/extractForeignKeyRelation/extractForeignKeyRelation.test.ts

<ul><li>Group tests under <code>describe</code> blocks<br> <li> Add test
for capital-letter column names<br> <li> Consolidate no-action
scenarios</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3458/files#diff-9f5bd2c96f0cdcb925343201e389d2d57d8f1fb2adf7daf522338939c613f426">+126/-109</a></td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>cold-toys-bow.md</strong><dd><code>Add changelog for
foreign key 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; &nbsp; </dd></summary>
<hr>

.changeset/cold-toys-bow.md

- Add dashboard patch changelog entry


</details>


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

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

</details>

___
2025-09-04 11:00:52 +02:00
robertkasza
0d183761ae fix (dashboard): allow any service to be filtered (#3452)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Allow filtering logs by any service

- Refactor log service constants and types

- Update tests for new service filtering

- Improve DateTimePicker component tests


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Old Service Enum"] --> B["Dynamic Service List"]
  C["Fixed Service Labels"] --> D["Flexible Service Labels"]
  E["Limited Service Filter"] --> F["Any Service Filter"]
  G["DateTimePicker Tests"] --> H["Improved DateTimePicker Tests"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>4
files</summary><table>
<tr>
<td><strong>DateTimePicker.test.tsx</strong><dd><code>Improve
DateTimePicker component tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-c7076012eb33d6f60049710638b5ad19c2f310b8c250c79f1905be7e0a30b00a">+12/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DeploymentServcieLogsHeader.test.tsx</strong><dd><code>Add
tests for DeploymentServiceLogsHeader</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-46fb5d0c9528168323c0e16ef4186d91fe6274b64292f43841258bdfc45dd581">+81/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useProjectLogs.test.ts</strong><dd><code>Update
useProjectLogs tests for new service handling</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-13d900aa08d06962a09628136b893801ad62a96c3ff89d380c5c4b7ae92d891e">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>LogsHeader.test.tsx</strong><dd><code>Add tests for
LogsHeader with new service handling</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-6a348a6b3f868aac854020f2b85ff9a7cf5d61f362a5201e77681e4d5a576f20">+86/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>8
files</summary><table>
<tr>
<td><strong>LogsServiceFilter.tsx</strong><dd><code>Update
LogsServiceFilter to support any service</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-a590a7298a9f040df9f26c4eb37d10fc36f47c32996f71aec47796f08c44e892">+8/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentServiceLogs.tsx</strong><dd><code>Update
DeploymentServiceLogs to use CoreLogService</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-333a9783713e9a4bad1b5327e117cbe69148091abe8b9038d36132b5f4635bbe">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentServiceLogsHeader.tsx</strong><dd><code>Refactor
DeploymentLogsHeader to use CoreLogService</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-4f102c06ed32bb3d8245e415e76b0b14d2d4ae3abca6e234edf69278325c7a95">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectLogs.ts</strong><dd><code>Refactor useProjectLogs
to handle any service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-10efc67700b3f024dd03442eacd339802e951696d04caa76bd5a864bd5c7c83f">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>LogsBody.tsx</strong><dd><code>Update LogsBody to use
CORE_LOG_SERVICE_TO_LABEL</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-b628e511a7fb9b237ac691b27ab9585eed0d0803144cde66c3af7fa6f9a2dc40">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>LogsHeader.tsx</strong><dd><code>Refactor LogsHeader to
support any service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-ebb3285aa776c9c5ea8b72672c4aafd55994c6c694998bbf56ca9c56d1e77664">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>services.ts</strong><dd><code>Rename AvailableLogsService to
CoreLogService</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-8fcdaed33322718091b613ae22c65cc3eb61972904b5af46866b160c9bbbe48c">+13/-13</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>logs.tsx</strong><dd><code>Update logs page to use
CoreLogService</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3452/files#diff-77489a68a7526d74f06d59019ad68c44728b7620637308d70fba38d6649b73fa">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-01 15:41:55 +02:00
David Barroso
183bd83ad7 fix: use postgres crypt to handle OTP hashing (#674)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Add configurable SMS provider flag

- Simplify OTP generation and storage

- Update SQL to cryptographically verify OTP

- Refactor and export password hash verifier


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["CLI --sms-provider flag"]
  B["getSMS initializes provider"]
  C["Dev or Twilio backend"]
  D["SendVerificationCode generates OTP"]
  E["DB stores and verifies OTP using crypt"]
  A -- "provides flag" --> B
  B -- "selects provider" --> C
  C -- "sends code" --> D
  D -- "calls DB update" --> E
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
<td><strong>email.go</strong><dd><code>Add SMS provider switch in
getSMS</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-a6364ed092c8bd789262322ec1e0108c274323462a0af0b7c7dd10a07f0bc449">+20/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>secrets.go</strong><dd><code>Export password hash
verifier</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-97ceb71f0d904089c77f432c1eb00e9b2b202b5b4ec191a52287386f06f0221b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_email_password.go</strong><dd><code>Use exported
VerifyHashPassword</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-c10b97a61def73058ca42e90bcdd6eb373637816f1c2eb05f448887abea0c996">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_otp_email.go</strong><dd><code>Introduce generateOTP
function</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-ef51144d6b45769b4ac4e5bbe0531a8cc235ef35c8d44a655ec689c8a81a45a0">+13/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>dev.go</strong><dd><code>Add Dev SMS provider
implementation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-875168f3184f1535f1a9893cd1c9f716e546b99057f4ce170b934d5ae661cac9">+32/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>sms.go</strong><dd><code>Simplify SMS OTP generation
logic</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-5c133e946d3d4678c97b6d28dfe7985b8f2b87a3f1fc26385bf07413e9508551">+13/-20</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>twilio_sms.go</strong><dd><code>Remove OTP args in TwilioSMS
constructor</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-c61a03d180f37c02b5dfc5224be8d2cbf8511dd6782153a76d09d9ce0ac9eaf6">+0/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_up_email_password.go</strong><dd><code>Remove OtpHash,
set empty Otp field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-21603d0151e49e6bf3da5747febc7d63b05501ef9c49559202b906faba64809a">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_passwordless_email.go</strong><dd><code>Set empty
Otp on signup with ticket</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-75955329f33dc13dc34388566d2874aaf09cda6ed864be1775e04db48bd3029b">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>serve.go</strong><dd><code>Add sms-provider CLI
flag</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>.golangci.yaml</strong><dd><code>Add goconst linter for
tests</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Cleanup</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>workflows_tickets.go</strong><dd><code>Remove legacy OTP
generator and hasher</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-a4d16eaab24ba5b8c7b93fb112b8dd7a7ff7a70308e2d334b1ba6ba38df8b1ee">+0/-27</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Remove obsolete OTP
interface method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Remove mocks for phone OTP
method</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-f1b1f168b0924b023c571d6274d53defef472a872f5fee4de1c4ae78959cc327">+0/-30</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>query.sql.go</strong><dd><code>Update
GetUserByPhoneNumberAndOTP crypt logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+17/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>query.sql</strong><dd><code>Align OTP SQL with crypt-based
check</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-c19dd96472c44a7389d4d1f72e0a1879df1e06e8e4d333ca3cb6b6dfbe3083ef">+10/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_passwordless_sms.go</strong><dd><code>Use raw OTP
instead of stored hash</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></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-27f138a5979edb2e311a55e08f902030c7c1ad35ab4600c8e0b41b4c03a70b8d">+9/-13</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>cli.md</strong><dd><code>Document --sms-provider
option</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-27c8c22b45605a0ddf42ce8017b6b2a68cb3b10534c18bf4a781e230d7b92361">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>sign_in_passwordless_sms_test.go</strong><dd><code>Update
tests for OTP vs hash</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-b51c9ca27064e2579444e6eecca4908c5c5f0f3d567b9a125406ca07f00354a7">+36/-36</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>sign_up_email_password_test.go</strong><dd><code>Update
tests to expect Otp field</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-2cd7cf89bd4d3e6fdfacd10d66740c02196b2bee4f9ec44409c4ad6a77d53685">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>7 files</summary><table>
<tr>
  <td><strong>elevate_webauthn_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-47ef225c96c0aa63c67e926b18c922a14e7ccbd71145ffe646da196d3cc13880">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>refresh_token_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-7c06d2d7bbfc744dd9feaa835b3ff8f2856304325c0fe45035bd9c655b2086d8">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>sign_in_otp_email_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-aff8747c582d84badc6a27e1f2f88dd91761ca1901f983908aab20f02c7eb5e3">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>sign_in_passwordless_email_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-f8cb52277c756ae8dfb128d6cf53df90a0c8e3506fe8402eb9d77a7658138678">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>sign_in_provider_callback_get_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-b46929201c1137439ed7682d5965a96d427110015ef31eb50fd3c86de3814d55">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>verify_elevate_webauthn_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-8f96cae3346b1cd7cddadcb3d588a05dcf51bf7d814fa9ae6817ed776a6ccbca">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>gocmp.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/674/files#diff-27aaac461c10f73569f7c93a2c299818d040c491f1fbd5279c682f5488dc65ed">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-01 12:58:59 +02:00
David Barroso
ccbc12f952 chore: update from urface/cli/v2 to v3 and fix a few outdated files (#672)
### **PR Type**
Enhancement


___

### **Description**
- Migrate from urfave/cli/v2 to v3 with API changes

- Update CLI flag configuration to use Sources instead of EnvVars

- Refactor function signatures to use cli.Command instead of cli.Context

- Add CLI documentation generation command


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["urfave/cli/v2"] --> B["urfave/cli/v3"]
  B --> C["Updated Flag Configuration"]
  B --> D["Function Signature Changes"]
  B --> E["CLI Documentation Generation"]
  C --> F["EnvVars → Sources"]
  D --> G["cli.Context → cli.Command"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>config.go</strong><dd><code>Update config functions for
cli/v3 compatibility</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-6ed50c9d309f6e7cf03742253995dfc65ae67702ae9c4aeb650b24a9b87cf377">+46/-46</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>db.go</strong><dd><code>Refactor database pool creation for
new CLI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-644e121bc5cd81a5aeca411a3b94f595b16b01f59917f5d2bf604a659e73ccdd">+5/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>email.go</strong><dd><code>Update email configuration and
error handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-a6364ed092c8bd789262322ec1e0108c274323462a0af0b7c7dd10a07f0bc449">+27/-27</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>enum.go</strong><dd><code>Simplify enum value handling and
remove helpers</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-0172565db430c88e75447650002d7f88f34d425f694332142dd16350d79c19d3">+8/-29</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>jwt_getter.go</strong><dd><code>Update JWT getter
configuration for cli/v3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-7e1ff4031caa178d9066e3eb8e9055636a219fc8517cac9bcf34c63033586006">+11/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>logger.go</strong><dd><code>Refactor logging configuration
and flag processing</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-94894c27740fc35b5b4808f22d4a897030db993d1d9343221de51e505594612c">+20/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>migrations.go</strong><dd><code>Update migration functions
for new CLI interface</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-8902ab7f0135be38b5d4c9e50105df8c79a3f7c4ce73c6006ed9cc751d652a7b">+10/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>oauth.go</strong><dd><code>Update OAuth provider
configuration functions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-82367f3f24a804b47ced852a588881c0846894bc0edf1ca3bdc6aa5aef7c37b2">+96/-94</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>serve.go</strong><dd><code>Major CLI flag migration and
server configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+218/-218</a></td>

</tr>

<tr>
<td><strong>main.go</strong><dd><code>Add CLI documentation generation
and update app structure</code></dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-2873f79a86c0d8b3335cd7731b0ecf7dd4301eb19a82ef7a1cba7589b5252261">+57/-9</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Miscellaneous</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>add_security_key_test.go</strong><dd><code>Add nolintlint
directive to test constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-e4bf9e60809ed847fc55d2859540ba867f91b5534f5ea339d689f5a80c832c10">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>elevate_webauthn_test.go</strong><dd><code>Add nolintlint
directive to test constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-47ef225c96c0aa63c67e926b18c922a14e7ccbd71145ffe646da196d3cc13880">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_webauthn_test.go</strong><dd><code>Add nolintlint
directive to test constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-a920a6aad3937fe5b208622b01177a4b04a182240e113b6fd1a231b12e7ed20f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>index.html</strong><dd><code>Remove WebAuthn test HTML
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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051">+0/-194</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>audit-ci.jsonc</strong><dd><code>Remove Node.js audit
configuration file</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-4ede69da2a1704e53e08b8d647a315c202f037cc9277f16c94176d9622d261c6">+0/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>CLAUDE.md</strong><dd><code>Update development guide title
and content</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-6ebdb617a8104a7756d0cf36578ab01103dc9f07e4dc6feb751296b9c402faf7">+51/-42</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DEVELOPERS.md</strong><dd><code>Remove outdated Node.js
development guide</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-bd017515eb79a7fb7569b1d15e8963ea380123d4fdf779978dd4b3ab7500fd10">+0/-77</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>README.md</strong><dd><code>Update installation and
configuration documentation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5">+11/-9</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SECURITY.md</strong><dd><code>Update security vulnerability
reporting URL</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-f6ed156e4bf5c791680662464b94ea5d753f219ee816b385f67870e2c0d7d4c7">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>cli.md</strong><dd><code>Add comprehensive CLI
documentation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-27c8c22b45605a0ddf42ce8017b6b2a68cb3b10534c18bf4a781e230d7b92361">+481/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>configuration.md</strong><dd><code>Update configuration
documentation references</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-17ed18489a956f326ec0fe4040850c5bc9261d4631fb42da4c52891d74a59180">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>environment-variables.md</strong><dd><code>Remove outdated
environment variables documentation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-24284b831e81f770335038e710187e2feb0c7c3f46148c31fea108516ce1ae59">+0/-127</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>go.mod</strong><dd><code>Update dependencies for
urfave/cli/v3 migration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+7/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>go.sum</strong><dd><code>Update dependency checksums for new
versions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/672/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+6/-8</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-09-01 12:35:57 +02:00
robertkasza
1902a114ec chore: update nextjs version because of vulnerabilities (#3454)
### **PR Type**
Enhancement


___

### **Description**
- Bump Next.js to v14.2.31 across multiple packages

- Update dependency to address vulnerabilities


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>package.json</strong><dd><code>Bump Next.js in
dashboard</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; </dd></summary>
<hr>

dashboard/package.json

- Updated `next` version from ^14.2.30 to ^14.2.31


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Bump Next.js in example
app</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; </dd></summary>
<hr>

examples/nextjs/package.json

- Updated `next` version from ^14.2.30 to ^14.2.31


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Bump Next.js in
quickstart</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; </dd></summary>
<hr>

examples/quickstarts/nextjs-server-components/package.json

- Updated `next` version from ^14.2.30 to ^14.2.31


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Bump Next.js in core
package</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; </dd></summary>
<hr>

packages/nextjs/package.json

- Updated `next` version from ^14.2.30 to ^14.2.31 in devDependencies


</details>


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

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

</details>

___
2025-09-01 09:29:36 +02:00
David Barroso
92e71a61f9 fix (dashboard): minor fixes to csp (#3451)
### **PR Type**
Enhancement


___

### **Description**
- Update CSP header in next.config.js

- Add googletagmanager.com to script-src

- Include github.com in img-src sources

- Create changeset for @nhost/dashboard patch


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["CSP Header"] --> B["Script Sources"]
  A --> C["Image Sources"]
  B -->|"Add"| D["googletagmanager.com"]
  C -->|"Add"| E["github.com"]
  F["Changeset"] -->|"Create"| G["@nhost/dashboard patch"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>next.config.js</strong><dd><code>Update Content
Security Policy header</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/next.config.js

<ul><li>Added googletagmanager.com to script-src in CSP header<br> <li>
Included github.com in img-src sources in CSP header</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>tough-cougars-guess.md</strong><dd><code>Add changeset
for dashboard CSP fixes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/tough-cougars-guess.md

<ul><li>Created new changeset file for @nhost/dashboard patch<br> <li>
Added description: "fix: minor fixes to csp"</ul>


</details>


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

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

</details>

___
2025-09-01 08:38:15 +02:00
David Barroso
d070758ce3 fix: do not return specific errors on unauthenticated endpoints to avoid account enumeration (#671)
### **PR Type**
Bug fix


___

### **Description**
- Prevent account enumeration in password reset endpoint

- Return success response for all invalid email scenarios

- Update error handling to mask user existence information

- Modify tests to expect consistent success responses


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Password Reset Request"] --> B["Email Validation"]
  B --> C["User Lookup"]
  C --> D["Error Handling"]
  D --> E["Success Response (Always)"]
  F["Previous: Specific Errors"] --> G["New: Generic Success"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>send_password_reset_email.go</strong><dd><code>Implement
anti-enumeration logic in password reset</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/send_password_reset_email.go

<ul><li>Import <code>errors</code> package for error type checking<br>
<li> Return success response instead of error for invalid emails<br>
<li> Add switch statement to handle internal server errors
separately<br> <li> Mask user existence information in all non-critical
error cases</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/671/files#diff-c50446fbf98e62efd5959b992a8bf642476201e02b616fcc5e9959276e357e4a">+6/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>send_password_reset_email_test.go</strong><dd><code>Update
tests for anti-enumeration behavior</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/controller/send_password_reset_email_test.go

<ul><li>Update test expectations from error responses to success
responses<br> <li> Remove assertions for specific error messages and
status codes<br> <li> Modify four test cases to expect consistent OK
responses</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/671/files#diff-50434a684676cacc5a156338b36a182c5acb03b3f88029d78289f311401c4741">+4/-20</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-09-01 08:25:24 +02:00
github-actions[bot]
9790bcfe3e chore: update versions (#3421)
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.9.0

### Minor Changes

- 2f5bc04: fix (hasura-storage-js/docs): use correct way of specifying
metadata\[] in formData

## @nhost/apollo@9.0.1

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost/react-apollo@18.0.2

### Patch Changes

-   @nhost/apollo@9.0.1
-   @nhost/react@3.11.2

## @nhost/react-urql@15.0.2

### Patch Changes

-   @nhost/react@3.11.2

## @nhost/nextjs@2.3.1

### Patch Changes

-   @nhost/react@3.11.2

## @nhost/nhost-js@3.3.1

### Patch Changes

-   Updated dependencies [2f5bc04]
    -   @nhost/hasura-storage-js@2.9.0

## @nhost/react@3.11.2

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost/vue@2.9.8

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost/dashboard@2.35.0

### Minor Changes

-   7633d04: feat (dashbord): Allow composite primary keys
-   c4f383f: fix: dashboard: don't allow for upgrading to starter
- 4c6400f: fix: handle redirect to verify email page if sign in with
github
-   7f0db21: feat: added entraid support
-   412692c: chore (dashboard): Turn on strictNullChecks config

### Patch Changes

- 1708578: fix (dashboard): Update navbar after org and project
operations
-   34ede5c: fix: enable csp again
-   96228df: chore (dashboard): update nhost-js to the latest version
-   d8c5117: fix (dashboard): Allow creating tables without primary key
-   89f6fe6: chore (docker-example): update dashboard image version
- e8a3789: fix (dashboard): scroll to active element in navbar when
navigating

## @nhost/docs@2.35.0

### Minor Changes

- 2f5bc04: fix (hasura-storage-js/docs): use correct way of specifying
metadata\[] in formData
-   7f0db21: feat: added entraid support

### Patch Changes

-   06b47e0: fix: fixes to changes in mintlify breaking our docs
-   d98e73e: fix: workaround for mintlify breaking our docs again

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

### Minor Changes

- 2f5bc04: fix (hasura-storage-js/docs): use correct way of specifying
metadata\[] in formData

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost-examples/cli@0.3.24

### Patch Changes

-   @nhost/nhost-js@3.3.1

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

### Patch Changes

-   @nhost/react@3.11.2
-   @nhost/react-apollo@18.0.2

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

### Patch Changes

-   @nhost/react@3.11.2

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

### Patch Changes

-   @nhost/react@3.11.2
-   @nhost/react-urql@15.0.2

## @nhost-examples/docker-compose@0.4.1

### Patch Changes

-   89f6fe6: chore (docker-example): update dashboard image version

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

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost-examples/nextjs@0.5.1

### Patch Changes

-   @nhost/react@3.11.2
-   @nhost/react-apollo@18.0.2
-   @nhost/nextjs@2.3.1

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

### Patch Changes

-   @nhost/nhost-js@3.3.1

## @nhost-examples/sveltekit@0.8.3

### Patch Changes

-   @nhost/nhost-js@3.3.1

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

### Patch Changes

-   @nhost/react@3.11.2
-   @nhost/react-apollo@18.0.2

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

### Patch Changes

-   @nhost/react@3.11.2

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

### Patch Changes

-   @nhost/react@3.11.2
-   @nhost/react-apollo@18.0.2

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

### Patch Changes

-   @nhost/nhost-js@3.3.1
-   @nhost/apollo@9.0.1
-   @nhost/vue@2.9.8

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

### Patch Changes

-   @nhost/apollo@9.0.1
-   @nhost/vue@2.9.8

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-29 16:48:22 +02:00
robertkasza
811b48eccf fix (dashboard): Disable segment (#3450)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Disable Segment analytics across the dashboard

- Remove anonId from authentication processes

- Adjust Google Ads initialization with logging


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Segment Analytics"] -- "Disabled" --> B["Dashboard"]
  C["Authentication"] -- "Remove anonId" --> D["Auth Flows"]
  E["Google Ads"] -- "Add logging" --> F["Initialization"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>useGithubAuthentication.ts</strong><dd><code>Remove
Segment anonId from GitHub authentication</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/auth/AuthProviders/Github/hooks/useGithubAuthentication/useGithubAuthentication.ts

<ul><li>Removed import of <code>getAnonId</code> from Segment<br> <li>
Removed <code>anonId</code> from metadata in authentication options</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>useOnSignUpWithPasswordHandler.ts</strong><dd><code>Remove
Segment anonId from email/password sign-up</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/auth/SignUp/SignUpTabs/SignUpWithEmailAndPassword/hooks/useOnSignUpWithPasswordHandler.ts

<ul><li>Removed import of <code>getAnonId</code> from Segment<br> <li>
Removed <code>anonId</code> from metadata in sign-up options</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>useSignupWithSecurityKeyHandler.ts</strong><dd><code>Remove
Segment anonId from security key sign-up</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/auth/SignUp/SignUpTabs/SignUpWithSecurityKey/hooks/useSignupWithSecurityKeyHandler.ts

<ul><li>Removed import of <code>getAnonId</code> from Segment<br> <li>
Removed <code>metadata</code> object with <code>anonId</code> from
sign-up options</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>SignUpWithGithub.tsx</strong><dd><code>Remove anonId
prop from GitHub sign-up button</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/features/auth/SignUp/SignUpWithGithub/SignUpWithGithub.tsx

- Removed `withAnonId` prop from `GithubAuthButton` component


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>segment.ts</strong><dd><code>Disable Segment analytics
globally</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/lib/segment.ts

<ul><li>Removed imports for <code>isPlatform</code> and
<code>isDevOrStaging</code><br> <li> Set <code>disable</code> option to
<code>true</code> for Segment analytics</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>signup.tsx</strong><dd><code>Add logging to Google Ads
initialization</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/signup.tsx

<ul><li>Added console log statements for Google Ads initialization<br>
<li> Added ESLint disable comments for console logs</ul>


</details>


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

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

</details>

___
2025-08-29 16:40:02 +02:00
robertkasza
57987ed3a9 fix (dashboard): update packages because of vulnerability (#3447)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Update package dependencies to address vulnerabilities

- Add new security overrides for `tmp` and `devalue`

- Enhance overall project security and stability


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["package.json"] --> B["Update Dependencies"]
  B --> C["Add Security Overrides"]
  C --> D["tmp >= 0.2.4"]
  C --> E["devalue >= 5.3.2"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>package.json</strong><dd><code>Update package.json with
new security overrides</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

<ul><li>Added security override for <code>tmp</code> package (version >=
0.2.4)<br> <li> Added security override for <code>devalue</code> package
(version >= 5.3.2)<br> <li> Updated existing security overrides</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3447/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-08-28 08:12:20 +02:00
David Barroso
7f0db210ba feat (dashboard/docs): added entraid support (#3440)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Added Entra ID support for authentication

- Deprecated Azure AD in favor of Entra ID

- Updated documentation for Entra ID integration

- Modified GraphQL schema to include Entra ID


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Azure AD"] -->|Deprecated| B["Entra ID"]
  B -->|Added| C["Authentication Methods"]
  D["GraphQL Schema"] -->|Updated| E["Include Entra ID"]
  F["Documentation"] -->|Updated| G["Entra ID Guide"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><details><summary>6
files</summary><table>
<tr>
<td><strong>AzureADProviderSettings.tsx</strong><dd><code>Update Azure
AD description to indicate deprecation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-6150a6fccfbe403a8349cd1393f783bad24c0937fad3fe5514d16f1ad0a06ded">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>neat-paws-flash.md</strong><dd><code>Add changeset for Entra
ID support</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-05455eeb0f3e19db8a47bda2fbc8d620bdff1a9abe0e40a415dd1a89fdf03284">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>docs.json</strong><dd><code>Add Entra ID to documentation
navigation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-873ce17c654718debe2fe308a2f2279bde8663686423c51f97fab2dd0722b8d9">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add Entra ID to OAuth
providers list</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-fcb8a858a73ee17bb801d63453716d58b940d7b1e51f48c5fb184e34971866f2">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign-in-azuread.mdx</strong><dd><code>Add deprecation
warning for Azure AD</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-1dc8d804f0d233fb4a540f9bfa2ce768de2d1164645240923a2ab6f22c7efc39">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign-in-entraid.mdx</strong><dd><code>Add new documentation
for Entra ID sign-in</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-3abbff0cd035a60ceda760d1f82c74ff93bd3567897d2bbef7c421e8d28cfe20">+47/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>EntraIDProviderSettings.tsx</strong><dd><code>Add new Entra
ID provider settings component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-5153daa8ad16e43f0246a74b57935910415c968fb14a149e0c38eef3beae7329">+225/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Create index file for Entra ID
provider settings</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-942638473827ec8cea7e0530dd0b45cd41fbfed4c8535b4b45a2ba44d17b98ca">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign-in-methods.tsx</strong><dd><code>Add Entra ID provider
to sign-in methods page</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-e9726f37d2b20d7802e29c8d9b202e6ccce35ce82a4993fb9bc0a22ea5601d5f">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>graphql.ts</strong><dd><code>Update GraphQL schema to
include Entra ID types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+43/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>getSignInMethods.graphql</strong><dd><code>Update GraphQL
query to include Entra ID fields</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3440/files#diff-31ad2ccce8e92a85c9e8e22285150a9e0bc042d2dd449706d9ef44aca8606ee9">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-08-26 15:42:02 +02:00
David Barroso
3672af6f2e feat: added EntraID in favor of AzureAD and restored old behavior for AzureAD (#668)
### **PR Type**
Enhancement


___

### **Description**
- Add EntraID OAuth provider as replacement for deprecated AzureAD

- Deprecate AzureAD provider with warning message

- Fix OAuth profile validation for empty provider user IDs

- Update API types and OpenAPI specification


___

### Diagram Walkthrough


```mermaid
flowchart LR
  AzureAD["AzureAD Provider (deprecated)"] -- "replaced by" --> EntraID["EntraID Provider"]
  EntraID --> API["API Types Updated"]
  EntraID --> Migration["Database Migration"]
  EntraID --> Validation["Profile Validation"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Update generated API server
with EntraID support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+159/-159</a></td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Add EntraID constants to
generated types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>oauth.go</strong><dd><code>Add EntraID provider
configuration and deprecation warning</code></dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-82367f3f24a804b47ced852a588881c0846894bc0edf1ca3bdc6aa5aef7c37b2">+18/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>serve.go</strong><dd><code>Add EntraID CLI flags and
configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+41/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>azuread.go</strong><dd><code>Simplify AzureAD provider
implementation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-206160b7cc0b284900057e9804c7ff57e757be1c4cb9d2b10fefbcafb4a2175f">+8/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>entraid.go</strong><dd><code>Implement new EntraID OAuth
provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-c0398837d3ac23ce780549e0c991cee331b013048d5b86d1c66b359f3a735e51">+70/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>scopes.go</strong><dd><code>Add default scopes for EntraID
provider</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-9007412d3f446ebcafd71f4c653bae37b99757ed41a2c08a5bacd78f2f644df2">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>00018_entraid-provider.down.sql</strong><dd><code>Add
EntraID provider migration rollback</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-4f4dcec8d023a9e6a961dd636b84c80b79264116e9971db83596edd40e6624a2">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>00018_entraid-provider.up.sql</strong><dd><code>Add EntraID
provider database migration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-793c1d93860ab26c9c19a0f16d812753861db914456881a758907952f3db8ac1">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Formatting</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>elevate_webauthn_test.go</strong><dd><code>Fix linter
comment for credential ID constant</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-47ef225c96c0aa63c67e926b18c922a14e7ccbd71145ffe646da196d3cc13880">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sign_in_webauthn_test.go</strong><dd><code>Fix linter
comment for credential ID constant</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-a920a6aad3937fe5b208622b01177a4b04a182240e113b6fd1a231b12e7ed20f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>sign_in_provider_callback_get.go</strong><dd><code>Add
validation for empty provider user ID</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-3ce523d5652c343d2bdb3dc0f4e3ec54888b43c7e348d4b7c59a9139c1aecefe">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>workflows.go</strong><dd><code>Add validation for empty
provider user ID</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>.golangci.yaml</strong><dd><code>Update linter configuration
for issue limits</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>openapi.yaml</strong><dd><code>Add EntraID to OpenAPI
specification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/668/files#diff-6e0796423f18517e4c44819722b39c2c5ab9999f9dfb37598288ea041d1db2b0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-08-26 15:41:48 +02:00
robertkasza
d8c5117046 fix (dashboard): Allow creating tables without primary key (#3441)
### **PR Type**
Bug fix


___

### **Description**
- Allow creating database tables without primary key

- Update logic to handle empty primary key values


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Table Creation"] --> B["Primary Key Check"]
  B -- "Empty" --> C["Skip Primary Key"]
  B -- "Not Empty" --> D["Add Primary Key"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>prepareCreateTableQuery.ts</strong><dd><code>Update
primary key check in table creation query</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/dataGrid/hooks/useCreateTableMutation/prepareCreateTableQuery.ts

<ul><li>Modified condition to check for non-empty primary key<br> <li>
Uses <code>isNotEmptyValue</code> function to validate primary key</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>little-coats-call.md</strong><dd><code>Add changeset
for dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.changeset/little-coats-call.md

<ul><li>Added changeset file for patch update<br> <li> Describes fix for
creating tables without primary key</ul>


</details>


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

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

</details>

___
2025-08-26 15:18:19 +02:00
robertkasza
7633d04121 feat (dashboard): Allow composite keys (#3424)
### **PR Type**
Enhancement


___

### **Description**
- Allow composite primary keys in tables

- Update UI to support multiple primary keys

- Modify backend logic for primary key handling

- Adjust tests for new primary key functionality


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Single Primary Key"] -- "Extend to" --> B["Composite Primary Keys"]
  B -- "Update" --> C["UI Components"]
  B -- "Modify" --> D["Backend Logic"]
  B -- "Adjust" --> E["Tests"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>create-table.test.ts</strong><dd><code>Update tests for
composite primary keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-1e7aa9f3e379ca90a94b82c14be48e2c98a722d85ee1b0785a082b7076d8e58c">+38/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>delete-table.test.ts</strong><dd><code>Modify delete table
tests for new primary key structure</code>&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-9e8c87f8e8f11bcfa2b7b2e5cf9dffe54a0fdeb3385ccb82b74e4e1c18fb9c43">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>permissions-table.test.ts</strong><dd><code>Adjust
permissions table tests for composite keys</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-f4b586f5b8f3bb97ddf64f8f38c461ac0424e101789f61e325d1b80bb8dc1047">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PrimaryKeyRow.test.tsx</strong><dd><code>Add tests for
PrimaryKeyRow component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-19ffdca665913249d140f824acdd7e3742daf7cc9efb4ebd4dd6e69c2e74dff0">+105/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>PrimaryKeySelect.test.tsx</strong><dd><code>Add tests for
PrimaryKeySelect component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-3502ffb4e30888c495a7aac784a9f018ab42e3b374b8716b92c72165f9ea52b7">+159/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>prepareCreateTableQuery.test.ts</strong><dd><code>Update
create table query tests for composite keys</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-348ba7ca6fc037a9d0de76a24efc36846c634d82755bbf33dd5062a7face06ec">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>prepareUpdateTableQuery.test.ts</strong><dd><code>Adjust
update table query tests for new primary key structure</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-57c2f882497d653700d68905bb54c891592a6bf302040d3008d624900f1bdf64">+7/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>13
files</summary><table>
<tr>
<td><strong>utils.ts</strong><dd><code>Update utility functions to
support multiple primary keys</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-490448aa83585151d8c61d698273c43486fdcac6a5d28a9b7e5be2729bbffd12">+12/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>IconButton.tsx</strong><dd><code>Add disabled prop to
IconButton interface</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-b83e92498e35096782ffeaafbae74794026da0f75d0a48c489efd23e3b255b6d">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>BaseTableForm.tsx</strong><dd><code>Refactor BaseTableForm
for composite primary keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-33e0bcf77738162f71af2ab673966d2e61d1e270ad09179c23e2d29d18582f80">+11/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ColumnEditorRow.tsx</strong><dd><code>Update ColumnEditorRow
for new primary key structure</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-4bbb8e759f348b872cff14e3d2f0339f1e7138b4b71d75c2d7b2bc58333b18ce">+1/-54</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PrimaryKeyRow.tsx</strong><dd><code>Implement PrimaryKeyRow
component for multiple primary keys</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-8dcde8064e12fdfc7d5361ab791644e8a17383b18ded898969ca84d54f24920a">+45/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PrimaryKeySelect.tsx</strong><dd><code>Implement
PrimaryKeySelect component for composite keys</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-f2e73f580c635656112d25f47243027e936e8cc09edd43597b21132517207c5b">+92/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Add index file for PrimaryKeyRow
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-e0def2b671d157fb86f15f7ef5e47d4155119ae8be4c153da46d6907611ebe6c">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PrimaryKeySelect.tsx</strong><dd><code>Remove old
PrimaryKeySelect component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-a72fdfc5e09e373d8bc16bd33f39bf9f59b8ea3e39702c5f0d0e0f5f67da92ae">+0/-49</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>RemoveButton.tsx</strong><dd><code>Implement RemoveButton
component for primary keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-99f91e5bded6fc202a11683c619572d9e4c4a38fe7c3a63b88093c0757a9f5de">+63/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>CreateTableForm.tsx</strong><dd><code>Update CreateTableForm
for composite primary keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-ccbaedba43e2b50ee80f458d1ff1dc37739dae73f266e1f18aeaebb427be1c4c">+12/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>EditTableForm.tsx</strong><dd><code>Modify EditTableForm to
handle multiple primary keys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-e628e74884ed048e1498960b80ad4d2a9fa6b4e05c89545c404e0ed50b43e50a">+25/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>prepareUpdateTableQuery.ts</strong><dd><code>Refactor update
table query preparation for composite keys</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-24dec66b099f48969413c6744a5b69e18e06f3c3df41ed7c712b4a0f31994f5c">+28/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>dataBrowser.ts</strong><dd><code>Update DatabaseTable
interface for composite primary keys</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3424/files#diff-33c6810dbd7e2910c86a15009467a348f064380b0e1dd787ef320b4e7543403b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-08-26 08:29:28 +02:00
robertkasza
e8a378906a fix (dashboard): scroll to active element in navbar when navigating (#3431)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Scroll to active element in navbar when navigating

- Update react-complex-tree package to version 2.6.0

- Fix database slug in ProjectPagesComboBox component

- Improve NavTree component styling and focus handling


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Navbar Navigation"] --> B["Scroll to Active"]
  A --> C["Update react-complex-tree"]
  D["Database Slug"] --> E["Fix in ProjectPagesComboBox"]
  F["NavTree Component"] --> G["Improve Styling"]
  F --> H["Enhance Focus Handling"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ProjectPagesComboBox.tsx</strong><dd><code>Fix database
slug in ProjectPagesComboBox</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

dashboard/src/components/layout/Header/ProjectPagesComboBox.tsx

- Fixed database slug by removing leading slash


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>NavTree.tsx</strong><dd><code>Enhance NavTree styling
and focus handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/components/layout/MainNav/NavTree.tsx

<ul><li>Improved styling for focused items using object syntax<br> <li>
Enhanced readability and maintainability of className conditional</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3431/files#diff-84209ba4cfca6eccb21d8aaaad77bf1af5a18675e6ba077b36acd8977e4c2569">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>PinnedMainNav.tsx</strong><dd><code>Implement scroll to
active element in navbar</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/components/layout/MainNav/PinnedMainNav.tsx

<ul><li>Added attribute filter to MutationObserver for class changes<br>
<li> Improved scrolling to active element when navigating</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>rude-carrots-unite.md</strong><dd><code>Add changeset
for navbar navigation fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/rude-carrots-unite.md

<ul><li>Added changeset file for patch update<br> <li> Described fix for
scrolling to active element in navbar</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update
react-complex-tree dependency</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>

dashboard/package.json

- Updated react-complex-tree package from 2.4.5 to 2.6.0


</details>


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

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

</details>

___
2025-08-25 12:21:41 +02:00
David Barroso
34ede5cf2c fix (dashboard): enable csp again (#3439)
### **PR Type**
Enhancement, Security


___

### **Description**
- Re-enable Content Security Policy (CSP) for production

- Disable CSP headers in development environment

- Improve security configuration in Next.js


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Environment Check"] --> B{"Is Production?"}
  B -->|Yes| C["Apply CSP"]
  B -->|No| D["Skip CSP"]
  C --> E["Apply Other Security Headers"]
  D --> E
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Security</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>next.config.js</strong><dd><code>Conditional CSP
application based on environment</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/next.config.js

<ul><li>Added environment check for CSP application<br> <li> Re-enabled
Content-Security-Policy header<br> <li> Removed commented-out CSP
code</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3439/files#diff-398ac9b04404f14166a89845539399764fecd520ad3e6f0119f8730c0eefa94a">+8/-4</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-08-25 09:50:45 +02:00
David Barroso
2deeb39a28 chore (ci): encrypt traces (#3437)
### **PR Type**
Enhancement, Other


___

### **Description**
- Implement encryption for Playwright reports

- Update artifact upload process for encrypted reports

- Remove file name transformation step

- Adjust conditional checks for report handling


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Playwright Test Failure"] --> B["Encrypt Report"]
  B --> C["Upload Encrypted Artifact"]
  C --> D["Secure Storage"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ci.yaml</strong><dd><code>Implement encryption and
streamline Playwright report handling</code></dd></summary>
<hr>

.github/workflows/ci.yaml

<ul><li>Added step to encrypt Playwright report using OpenSSL<br> <li>
Updated artifact upload to use encrypted report<br> <li> Removed file
name transformation step<br> <li> Adjusted conditional checks for report
handling</ul>


</details>


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

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

</details>

___
2025-08-22 12:52:55 +02:00
David Barroso
d98e73e57e fix (docs): workaround for mintlify breaking our docs again (#3436)
### **PR Type**
Bug fix, Documentation


___

### **Description**
- Fix Mintlify documentation breaking issue

- Update file naming convention for JWKS endpoint

- Adjust docs.json to reflect new file name

- Add metadata to JWKS endpoint documentation file


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Mintlify breaking issue"] --> B["File renaming"]
  B --> C["docs.json update"]
  B --> D["Metadata addition"]
  C --> E["Fixed documentation"]
  D --> E
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>docs.json</strong><dd><code>Update JWKS endpoint file
reference in docs.json</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/docs.json

<ul><li>Updated file path for JWKS endpoint documentation<br> <li>
Changed <code>get-.well-known-jwks.json</code> to
<code>get-.well-known-jwks_json</code></ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>get-.well-known-jwks_json.mdx</strong><dd><code>Add
metadata to JWKS endpoint documentation file</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/reference/auth/get-.well-known-jwks_json.mdx

<ul><li>Added frontmatter metadata to the file<br> <li> Included title
and OpenAPI reference for the JWKS endpoint</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3436/files#diff-70bc360afe951a74a46fadda220916c5248dde71aeb2b99e2d641e748d501524">[link]</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-08-22 09:24:17 +02:00
David BM
4c6400fc52 fix (dashboard): GitHub verify email redirect (#3434) 2025-08-20 10:35:38 +02:00
Nuno Pato
c4f383f695 fix: dashboard: show correct plan prices (#3428)
### **PR Type**
Bug fix


___

### **Description**
- Fixed pricing display for subscription plans

- Prevented upgrading to starter plan

- Updated logic for free plan identification


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Subscription Plan Component"] --> B["Price Display"]
  A --> C["Plan Upgrade"]
  B --> D["Use `plan.isFree` instead of `isFreeOrg`"]
  C --> E["Restrict upgrade to starter"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>SubscriptionPlan.tsx</strong><dd><code>Update free plan
detection and price display</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/components/billing/SubscriptionPlan/SubscriptionPlan.tsx

<ul><li>Changed condition for displaying 'Free' from
<code>isFreeOrg</code> to <code>plan.isFree</code><br> <li> Updated
price display logic in the subscription plan component</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>great-bugs-leave.md</strong><dd><code>Add changeset for
dashboard upgrade restriction</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/great-bugs-leave.md

<ul><li>Added changeset file to document the fix<br> <li> Specified
minor version bump for @nhost/dashboard<br> <li> Described preventing
upgrade to starter plan</ul>


</details>


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

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

</details>

___

---------

Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
2025-08-19 16:53:23 +00:00
robertkasza
1708578f8f fix (dashboard): Update navbar after org and project operations (#3433)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Update navbar after organization and project operations

- Remove unnecessary useMemo and refetch calls

- Improve UI responsiveness in upgrade process

- Add changeset for patch version bump


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["NavTree Component"] -- "Remove useMemo" --> B["Improved Performance"]
  C["FinishUpgradeOrganizationProcess"] -- "Remove refetchOrgs" --> D["Optimized Upgrade Flow"]
  E["Changeset"] -- "Add patch version" --> F["Version Control"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>NavTree.tsx</strong><dd><code>Optimize NavTree
rendering by removing useMemo</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/components/layout/MainNav/NavTree.tsx

<ul><li>Removed useMemo hook for navTree calculation<br> <li> Directly
call buildNavTreeData function with org</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>FinishUpgradeOrganizationProcess.tsx</strong><dd><code>Streamline
organization upgrade process</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/components/billing/FinishUpgradeOrganizationProcess/FinishUpgradeOrganizationProcess.tsx

<ul><li>Removed useOrgs hook and refetchOrgs call<br> <li> Set
hideCloseButton initial state to true<br> <li> Removed unnecessary await
for refetchOrgs</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3433/files#diff-2a9235457a5f0ad0a0202ea35f52026d05bb27fc791b1d9907dc8fc4535be40b">+1/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>few-fans-collect.md</strong><dd><code>Add changeset for
dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/few-fans-collect.md

<ul><li>Added new changeset file for patch version bump<br> <li>
Included description of navbar update fix</ul>


</details>


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

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

</details>

___
2025-08-19 15:11:02 +02:00
robertkasza
96228dfe69 chore (dashboard): update nhost-js to the latest version (#3423)
### **PR Type**
Enhancement


___

### **Description**
- Update `@nhost/nhost-js` to version 5.0.0-beta.9

- Add changeset for patch update to `@nhost/dashboard`


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Old Version"] -- "Update" --> B["New Version"]
  B -- "Patch" --> C["@nhost/dashboard"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>hip-zebras-brake.md</strong><dd><code>Add changeset for
dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/hip-zebras-brake.md

<ul><li>Add new changeset file for patch update<br> <li> Specify update
for <code>@nhost/dashboard</code> package</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update nhost-js
dependency version</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/package.json

<ul><li>Update <code>@nhost/nhost-js-beta</code> from version
5.0.0-beta.8 to 5.0.0-beta.9</ul>


</details>


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

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

</details>

___
2025-08-14 10:30:48 +02:00
David Barroso
2f5bc04e0c fix (hasura-storage-js/docs): use correct way of specifying metadata[] in formData (#3418)
### **PR Type**
Bug fix


___

### **Description**
- Fix metadata[] specification in formData for file uploads

- Use Blob with JSON.stringify for metadata[] in multiple files

- Update documentation and example code for correct usage

- Ensure compatibility across different environments (browser/Node.js)


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Old metadata[] handling"] --> B["New metadata[] handling"]
  B --> C["Use Blob"]
  C --> D["JSON.stringify"]
  D --> E["Set content type"]
  E --> F["Empty filename"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>hasura-storage-api.ts</strong><dd><code>Update
metadata[] handling in file upload</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

packages/hasura-storage-js/src/hasura-storage-api.ts

<ul><li>Replace direct JSON.stringify with Blob for metadata[]<br> <li>
Set content type to 'application/json'<br> <li> Add empty string as
third argument for filename</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>upload-file.mdx</strong><dd><code>Update documentation
for correct metadata[] usage</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/reference/storage/upload-file.mdx

<ul><li>Update example code for correct metadata[] usage<br> <li> Use
Blob with JSON.stringify for metadata[]<br> <li> Set content type and
add empty filename</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>uploadFormData.mjs</strong><dd><code>Update example
code for correct metadata[] handling</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

examples/node-storage/src/uploadFormData.mjs

<ul><li>Update example code for multiple file uploads<br> <li> Use Blob
with JSON.stringify for each metadata[] entry<br> <li> Set content type
and add empty filename for each entry</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3418/files#diff-409940e89eec273da12632fa6eaf09fa331c8806ef03882543616282921e12c4">+10/-2</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-08-13 14:16:56 +02:00
David Barroso
06b47e0fb9 fix (docs): fixes to changes in mintlify breaking our docs (#3422)
### **PR Type**
Bug fix, Documentation


___

### **Description**
- Update Mintlify dependency to fix documentation issues

- Adjust CSS for better display of hero section

- Ensure proper styling in both light and dark modes


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Mintlify Update"] --> B["CSS Adjustments"]
  B --> C["Hero Section Display"]
  B --> D["Light/Dark Mode Styling"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>style.css</strong><dd><code>Enhance hero section
display and mode-specific styling</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

docs/style.css

<ul><li>Added <code>display: inline-block;</code> to hero section h1<br>
<li> Adjusted styling for welcome-hero and welcome-get-started
sections<br> <li> Ensured proper color contrast in light and dark
modes</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3422/files#diff-4dde236d1a1b6f7a24be281ce9e8212368612d66a631fa592bfe18653f57c601">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update Mintlify
dependency to latest version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/package.json

- Updated Mintlify dependency from version 4.0.476 to 4.2.67


</details>


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

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

</details>

___
2025-08-13 10:38:55 +02:00
robertkasza
412692c2f6 chore (dashboard): turn on null checks (#3390) 2025-08-12 15:45:49 +02:00
robertkasza
89f6fe6346 chore (docker-example): update dashboard image version (#3420)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Update dashboard image version in docker-compose.yaml

- Improve DialogTitle styling in SubscriptionPlan component

- Add changeset for version bump documentation


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Docker Compose"] --> B["Dashboard Image"]
  B --> C["Version 2.34.0"]
  D["SubscriptionPlan Component"] --> E["DialogTitle Styling"]
  F["Changeset"] --> G["Version Documentation"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>docker-compose.yaml</strong><dd><code>Update dashboard
image version in docker-compose</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

examples/docker-compose/docker-compose.yaml

- Update `nhost/dashboard` image version from 2.20.0 to 2.34.0


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>SubscriptionPlan.tsx</strong><dd><code>Enhance
DialogTitle styling in SubscriptionPlan component</code></dd></summary>
<hr>


dashboard/src/features/orgs/components/billing/SubscriptionPlan/SubscriptionPlan.tsx

<ul><li>Add <code>className="pr-3"</code> to DialogTitle in
SubscriptionPlan component<br> <li> Improve layout of DialogTitle by
wrapping content</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3420/files#diff-019ca573844d1ba21be90b471b34eba018fc67ccbf75f2553629ddf88df76442">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>quick-kangaroos-perform.md</strong><dd><code>Add
changeset for version documentation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/quick-kangaroos-perform.md

<ul><li>Add new changeset file for version bump documentation<br> <li>
Include patch updates for docker-compose example and dashboard</ul>


</details>


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

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

</details>

___
2025-08-12 13:21:25 +02:00
github-actions[bot]
2e34d7b9d0 chore: update versions (#3383)
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/nextjs@2.3.0

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

## @nhost/dashboard@2.34.0

### Minor Changes

-   7eb9539: feat (dashboard): Allow upgrading free organizations
-   129ec1e: feat: dashboard: new onboarding
-   59249e5: fix: elevate permissions in password reset
-   5e9ddb4: fix: show Run service name in logs page
- 4ffff86: fix (dashboard): Disable settings pages when config server
env variable is not set
-   b8cb491: fix: update dependencies to fix vulnerabilities
- 5565451: fix: support page, can scroll all the way down in Chrome for
iOS
-   f7d7080: chore: dashboard: add gtag

### Patch Changes

-   181c0ab: fix (dashboard): Fix upgrade project e2e tests
- 56c87da: fix (dashboard): Use the correct http method when conneting
to new github
-   00132bd: fix (dashboard): Clear isSigningOut variable on Signin page
- 66e0cc8: fix (dashboard): Check if user is logged in before
redirecting
-   9c0a118: chore (dashboard): Add RetryLink to ApolloClient
-   df6b85e: fix (dashboard): fix password reset redirect url
-   ec24567: fix (dashboard): Add content-type header
-   57b2615: chore (dashboard): refactor redirect behaviour
- cffa161: fix (dashboard): disable settings in the header when
self-hosting
- 85316e8: fix (dashboard): Remove second loading indicator on projects
page
- 47ab341: fix (dashboard): Fix announcement layout when title is too
short

## @nhost/docs@2.34.0

### Minor Changes

- 40439b9: chore: updated postgres extension and added new custom claims
default option

### Patch Changes

-   906620a: fix: functions: added response payload limit

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

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

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

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

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

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

## @nhost-examples/nextjs@0.5.0

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

### Patch Changes

-   Updated dependencies [b8cb491]
    -   @nhost/nextjs@2.3.0

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

### Minor Changes

-   b8cb491: fix: update dependencies to fix vulnerabilities

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-12 09:37:10 +02:00
robertkasza
66e0cc8261 fix (dashboard): Check if user is logged in before redirecting (#3419)
### **PR Type**
Bug fix


___

### **Description**
- Check user authentication before redirecting

- Prevent unnecessary redirects for unauthenticated users

- Update logic in OrganizationGuard and ProjectLayoutContent

- Add isUserLoggedIn check in IndexPage component


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["User Authentication"] --> B["isUserLoggedIn"]
  B --> C{"Redirect?"}
  C -->|Yes| D["Authenticated Redirect"]
  C -->|No| E["No Redirect"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>OrganizationGuard.tsx</strong><dd><code>Add
authentication check in OrganizationGuard</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/features/orgs/layout/OrgLayout/OrganizationGuard.tsx

<ul><li>Import useAuth hook<br> <li> Add isUserLoggedIn check<br> <li>
Update useEffect dependency array<br> <li> Modify return statement
condition</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3419/files#diff-669e7f622ceecf34bb28a6ede2ac6539facfe3d4660bcaa4c984a9589faca925">+7/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>ProjectLayoutContent.tsx</strong><dd><code>Implement
user authentication check in ProjectLayoutContent</code></dd></summary>
<hr>

dashboard/src/features/orgs/layout/OrgLayout/ProjectLayoutContent.tsx

<ul><li>Import useAuth hook<br> <li> Add isUserLoggedIn check<br> <li>
Update useEffect and conditional rendering</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3419/files#diff-52f5b39f2a0a081aa2291ad760536d8a9ffe7f5864548386145ee3538f696051">+7/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.tsx</strong><dd><code>Add authentication check
for IndexPage navigation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/pages/index.tsx

<ul><li>Import useAuth hook<br> <li> Add isUserLoggedIn check<br> <li>
Update navigateToSlug function</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3419/files#diff-4eefa54204aa396da4d4d2f1d633d42d1b8ef86987f6e8c9b63d81df1ea6a273">+5/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>mighty-kids-double.md</strong><dd><code>Add changeset
for dashboard authentication fix</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/mighty-kids-double.md

- Add changeset for patch update


</details>


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

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

</details>

___
2025-08-12 08:38:32 +02:00
robertkasza
7eb9539807 feat (dashboard): Allow upgrading free organizations (#3411)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Allow upgrading free organizations to paid plans

- Refactor transfer project dialog and related components

- Update billing estimate and subscription plan components

- Fix issues in e2e tests and dialog components


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Free Org"] -- "Upgrade" --> B["Paid Org"]
  C["Transfer Dialog"] -- "Refactor" --> D["New Components"]
  E["Billing UI"] -- "Update" --> F["New Features"]
  G["E2E Tests"] -- "Fix" --> H["Improved Reliability"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___
2025-08-11 16:03:39 +02:00
David Barroso
906620a755 fix (docs): functions: added response payload limit (#3416)
### **PR Type**
Documentation


___

### **Description**
- Added response payload limit information

- Clarified execution timeout limits by project tier

- Improved structure of limits section in documentation


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Functions Limits"] --> B["Execution Timeout"]
  A --> C["Response Payload"]
  B --> D["Tier-specific timeouts"]
  C --> E["6MB hard limit"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>cool-toes-impress.md</strong><dd><code>Add changeset
for functions documentation update</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/cool-toes-impress.md

<ul><li>Added changeset file for documentation update<br> <li> Specified
patch version bump for '@nhost/docs'<br> <li> Described fix for
functions response payload limit</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>overview.mdx</strong><dd><code>Update Functions limits
documentation with payload limit</code>&nbsp; </dd></summary>
<hr>

docs/products/functions/overview.mdx

<ul><li>Added new "Response Payload" subsection under "Limits"<br> <li>
Introduced 6MB hard limit for response payloads<br> <li> Restructured
"Limits" section with "Execution Timeout" subsection</ul>


</details>


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

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

</details>

___
2025-08-11 09:03:16 +02:00
David BM
5e9ddb41d2 fix (dashboard): show run service name in logs page (#3415) 2025-08-08 10:38:06 +02:00
robertkasza
00132bd961 fix (dashboard): Clear isSigningOut variable on Signin page (#3410)
### **PR Type**
Bug fix


___

### **Description**
- Clear isSigningOut variable on Signin page

- Add clearIsSigningOut function to AuthContext

- Implement clearIsSigningOut in AuthProvider

- Use clearIsSigningOut in signin page useEffect


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["AuthContext"] -- "Add clearIsSigningOut" --> B["AuthProvider"]
  B -- "Implement clearIsSigningOut" --> C["Signin Page"]
  C -- "Use clearIsSigningOut" --> D["Clear isSigningOut"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Debugging</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AuthenticatedLayout.tsx</strong><dd><code>Add debug
logging in AuthenticatedLayout</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/components/layout/AuthenticatedLayout/AuthenticatedLayout.tsx

<ul><li>Added console.log for debugging isPlatform, isLoading, and
<br>isSigningOut states</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>signin.tsx</strong><dd><code>Implement isSigningOut
state clearing on Signin page</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/signin.tsx

<ul><li>Import useAuth hook and useEffect<br> <li> Add useEffect to
clear isSigningOut state on component mount<br> <li> Destructure
clearIsSigningOut from useAuth</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AuthContext.ts</strong><dd><code>Add clearIsSigningOut
to AuthContext</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>

dashboard/src/providers/Auth/AuthContext.ts

<ul><li>Add clearIsSigningOut function to AuthContextType<br> <li>
Include clearIsSigningOut in default AuthContext value</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>AuthProvider.tsx</strong><dd><code>Implement
clearIsSigningOut in AuthProvider</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/providers/Auth/AuthProvider.tsx

<ul><li>Implement clearIsSigningOut function in AuthProvider<br> <li>
Add clearIsSigningOut to the context value object</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>clever-dots-complain.md</strong><dd><code>Add changeset
for isSigningOut 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/clever-dots-complain.md

<ul><li>Add changeset file for patch update to @nhost/dashboard<br> <li>
Describe the fix for clearing isSigningOut variable on Signin page</ul>


</details>


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

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

</details>

___
2025-08-06 15:06:13 +02:00
dependabot[bot]
19de48095d chore: bump actions/download-artifact from 4 to 5 (#665)
### **User description**
Bumps
[actions/download-artifact](https://github.com/actions/download-artifact)
from 4 to 5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/download-artifact/releases">actions/download-artifact's
releases</a>.</em></p>
<blockquote>
<h2>v5.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/407">actions/download-artifact#407</a></li>
<li>BREAKING fix: inconsistent path behavior for single artifact
downloads by ID by <a
href="https://github.com/GrantBirki"><code>@​GrantBirki</code></a> in <a
href="https://redirect.github.com/actions/download-artifact/pull/416">actions/download-artifact#416</a></li>
</ul>
<h2>v5.0.0</h2>
<h3>🚨 Breaking Change</h3>
<p>This release fixes an inconsistency in path behavior for single
artifact downloads by ID. <strong>If you're downloading single artifacts
by ID, the output path may change.</strong></p>
<h4>What Changed</h4>
<p>Previously, <strong>single artifact downloads</strong> behaved
differently depending on how you specified the artifact:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (direct)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/my-artifact/</code> (nested)</li>
</ul>
<p>Now both methods are consistent:</p>
<ul>
<li><strong>By name</strong>: <code>name: my-artifact</code> → extracted
to <code>path/</code> (unchanged)</li>
<li><strong>By ID</strong>: <code>artifact-ids: 12345</code> → extracted
to <code>path/</code> (fixed - now direct)</li>
</ul>
<h4>Migration Guide</h4>
<h5> No Action Needed If:</h5>
<ul>
<li>You download artifacts by <strong>name</strong></li>
<li>You download <strong>multiple</strong> artifacts by ID</li>
<li>You already use <code>merge-multiple: true</code> as a
workaround</li>
</ul>
<h5>⚠️ Action Required If:</h5>
<p>You download <strong>single artifacts by ID</strong> and your
workflows expect the nested directory structure.</p>
<p><strong>Before v5 (nested structure):</strong></p>
<pre lang="yaml"><code>- uses: actions/download-artifact@v4
  with:
    artifact-ids: 12345
    path: dist
# Files were in: dist/my-artifact/
</code></pre>
<blockquote>
<p>Where <code>my-artifact</code> is the name of the artifact you
previously uploaded</p>
</blockquote>
<p><strong>To maintain old behavior (if needed):</strong></p>
<pre lang="yaml"><code>&lt;/tr&gt;&lt;/table&gt; 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="634f93cb29"><code>634f93c</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/416">#416</a>
from actions/single-artifact-id-download-path</li>
<li><a
href="b19ff43027"><code>b19ff43</code></a>
refactor: resolve download path correctly in artifact download tests
(mainly ...</li>
<li><a
href="e262cbee4a"><code>e262cbe</code></a>
bundle dist</li>
<li><a
href="bff23f9308"><code>bff23f9</code></a>
update docs</li>
<li><a
href="fff8c148a8"><code>fff8c14</code></a>
fix download path logic when downloading a single artifact by id</li>
<li><a
href="448e3f862a"><code>448e3f8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/download-artifact/issues/407">#407</a>
from actions/nebuk89-patch-1</li>
<li><a
href="47225c44b3"><code>47225c4</code></a>
Update README.md</li>
<li>See full diff in <a
href="https://github.com/actions/download-artifact/compare/v4...v5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Other


___

### **Description**
- Update GitHub Actions dependency to latest version

- Bump actions/download-artifact from v4 to v5

- Maintain existing workflow functionality


___



<details> <summary><h3> File Walkthrough</h3></summary>

<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>wf_docker_push_image.yaml</strong><dd><code>Update
download-artifact action version</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/wf_docker_push_image.yaml

- Updated actions/download-artifact from v4 to v5


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/665/files#diff-a0b87bcebe9e143aeb58a882e2bcf531709c6950d6845ababf624eb125eed691">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-06 10:29:22 +02:00
David Barroso
d064a2fe23 fix: do not redirect to invalid redirectTo on error to (#664)
If an attacker requests an invalid redirectTo the service correctly
validates the value and throws on error. However, in the case of the
/verify endpoint we redirect to the very same redirectTo that we just
invalidated indicating the redirectTo was invalid.

### **PR Type**
Bug fix


___

### **Description**
- Fix redirect URL validation in ticket verification

- Prevent redirection to invalid/malicious URLs on error

- Use client URL instead of invalid redirectTo parameter

- Add test case for wrong redirect URL scenario


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Invalid redirectTo"] --> B["Validation Error"]
  B --> C["Use ClientURL instead"]
  C --> D["Safe Redirect"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>verify_ticket.go</strong><dd><code>Fix redirect URL
validation error handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/verify_ticket.go

<ul><li>Replace invalid <code>redirectTo</code> with
<code>ctrl.config.ClientURL</code> on validation <br>error<br> <li>
Prevent potential security vulnerability from malicious redirect
URLs</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/664/files#diff-7a36d63db0b247e393d4e7a9a2ff52be673c33aa2a4e40af06f1a4445edb3c32">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>verify_ticket_test.go</strong><dd><code>Add test for
invalid redirect URL handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/verify_ticket_test.go

<ul><li>Add test case for "wrong redirect URL" scenario<br> <li> Verify
proper error handling with malicious redirect URL<br> <li> Test expected
redirect to client URL with appropriate error message</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/664/files#diff-0c15b83d87b39bbbb4175ee401fef063bd686677d110c89822ddc287c5f0e57e">+31/-0</a>&nbsp;
&nbsp; </td>

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

</details>

___
2025-08-05 13:06:38 +02:00
robertkasza
57b26152e4 chore (dashboard): refactor redirect behaviour (#3403)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Refactor redirect behavior in dashboard

- Implement OrganizationGuard for project access control

- Add ProjectLayoutContent for improved layout management

- Update tests for new components and hooks

- Fix minor issues in existing components


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["AuthenticatedLayout"] --> B["OrganizationGuard"]
  B --> C["ProjectLayoutContent"]
  C --> D["Project-specific components"]
  E["useNotFoundRedirect"] --> F["404 Redirect"]
  G["useProjectWithState"] --> H["Project Data"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___
2025-08-05 08:40:37 +02:00
David Barroso
c618a7a359 chore: update dependencies (#663)
### **PR Type**
Enhancement


___

### **Description**
- Update Go dependencies to latest versions

- Improve error handling and logging consistency

- Add context parameter to SMS verification methods

- Refactor linter configuration to version 2 format


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Dependencies"] --> B["Go Modules"]
  A --> C["Linter Config"]
  D["Error Handling"] --> E["Context Logging"]
  D --> F["SMS Interface"]
  B --> G["Updated Versions"]
  C --> H["Version 2 Format"]
  E --> I["Consistent Patterns"]
  F --> J["Context Parameter"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___
2025-08-01 12:10:53 +02:00
David BM
5565451f18 fix (dashboard): support page, can scroll all the way down in Chrome for iOS (#3408)
### **PR Type**
Bug fix


___

### **Description**
- Fixed scrolling issue on support page for Chrome iOS

- Changed container height from 'h-screen' to 'h-full'

- Added changeset for version tracking


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Support Page"] -- "Height Change" --> B["Full Scrolling"]
  C["Changeset"] -- "Version Update" --> D["@nhost/dashboard"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>index.tsx</strong><dd><code>Adjust support page
container height for better scrolling</code></dd></summary>
<hr>

dashboard/src/pages/support/index.tsx

<ul><li>Changed container height from 'h-screen' to 'h-full'<br> <li>
Allows full scrolling on Chrome for iOS</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>stupid-phones-act.md</strong><dd><code>Add changeset
for version tracking</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/stupid-phones-act.md

<ul><li>Added new changeset file<br> <li> Specifies minor version bump
for '@nhost/dashboard'<br> <li> Describes the fix for support page
scrolling</ul>


</details>


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

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

</details>

___
2025-08-01 09:21:34 +02:00
Nuno Pato
4b18e02ad2 fix: dashboard: don't upgrade to starter (#3407)
### **PR Type**
Enhancement


___

### **Description**
- Disable upgrade to Starter plan

- Add visual cues for disabled Starter plan

- Improve user interface for plan selection

- Enhance accessibility and user experience


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Plan Selection"] --> B["Identify Starter Plan"]
  B --> C["Disable Starter Option"]
  C --> D["Visual Feedback"]
  D --> E["Improved UX"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>SubscriptionPlan.tsx</strong><dd><code>Disable and
style Starter plan in subscription selection</code>&nbsp;
</dd></summary>
<hr>


dashboard/src/features/orgs/components/billing/components/SubscriptionPlan/SubscriptionPlan.tsx

<ul><li>Added logic to identify Starter plan<br> <li> Disabled radio
button for Starter plan<br> <li> Applied opacity and cursor styles to
Starter plan<br> <li> Refactored plan mapping for better
readability</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3407/files#diff-2a5f070869055286b669e382b18d656935752803b9a1ef13390ac028c2a48ac4">+8/-4</a>&nbsp;
&nbsp; &nbsp; </td>

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

</details>

___
2025-07-31 14:19:41 +00:00
robertkasza
181c0ab19d fix (dashboard): Fix upgrade project e2e tests (#3406)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Fix upgrade project e2e tests in dashboard

- Add organization type selection in upgrade process

- Update header class in AuthenticatedLayout component

- Include changeset for patch update


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["E2E Test"] -- "Add org type selection" --> B["Upgrade Process"]
  C["AuthenticatedLayout"] -- "Update header class" --> D["UI Improvement"]
  E["Changeset"] -- "Document patch" --> F["Version Control"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>upgrade-project.test.ts</strong><dd><code>Add
organization type selection in upgrade test</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/e2e/upgrade-project/upgrade-project.test.ts

<ul><li>Add steps to select organization type<br> <li> Choose 'Personal
Project' as the organization type<br> <li> Improve test flow for project
upgrade process</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AuthenticatedLayout.tsx</strong><dd><code>Modify Header
className in AuthenticatedLayout</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/components/layout/AuthenticatedLayout/AuthenticatedLayout.tsx

- Update Header className to include 'hello_there'


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>big-bananas-roll.md</strong><dd><code>Add changeset for
dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/big-bananas-roll.md

<ul><li>Add changeset file for patch update<br> <li> Document fix for
upgrade project e2e tests</ul>


</details>


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

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

</details>

___
2025-07-31 10:58:04 +02:00
robertkasza
939a158917 chore (dashboard): re-enable upgrade project e2e tests (#3401)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Re-enable upgrade project e2e tests for dashboard

- Remove temporary comment disabling the tests

- Adjust CI workflow to include upgrade tests


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Disabled Tests"] -- "Re-enable" --> B["Upgrade Project E2E Tests"]
  B -- "Include in" --> C["CI Workflow"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ci.yaml</strong><dd><code>Re-enable Dashboard upgrade
project e2e tests in CI</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.github/workflows/ci.yaml

<ul><li>Removed comments disabling upgrade project e2e tests<br> <li>
Re-enabled the "Run Upgrade project Dashboard e2e tests" step<br> <li>
Kept the timeout and filter conditions unchanged</ul>


</details>


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

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

</details>

___
2025-07-30 15:27:43 +02:00
robertkasza
9c0a118721 chore (dashboard): Add RetryLink to ApolloClient (#3400)
### **User description**
The default config for the RetryLink:
```
new RetryLink({
  delay: {
    initial: 300,
    max: Infinity,
    jitter: true
  },
  attempts: {
    max: 5,
    retryIf: (error, _operation) => !!error
  }
});
```

Source:
https://www.apollographql.com/docs/react/api/link/apollo-link-retry


___

### **PR Type**
Enhancement


___

### **Description**
- Added RetryLink to ApolloClient for improved network resilience

- Implemented in dashboard's createApolloClient function

- RetryLink added to Apollo link chain

- Updated changeset for @nhost/dashboard patch


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["ApolloClient"] --> B["Link Chain"]
  B --> C["RetryLink"]
  C --> D["SplitLink"]
  D --> E["WSLink/HTTPLink"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>createApolloClient.ts</strong><dd><code>Integrate
RetryLink into ApolloClient configuration</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/providers/Apollo/createApolloClient.ts

<ul><li>Imported RetryLink from '@apollo/client/link/retry'<br> <li>
Created new RetryLink instance<br> <li> Added RetryLink to the Apollo
link chain</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>rude-days-punch.md</strong><dd><code>Add changeset for
RetryLink implementation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/rude-days-punch.md

<ul><li>Added new changeset file for @nhost/dashboard patch<br> <li>
Described the addition of RetryLink to ApolloClient</ul>


</details>


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

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

</details>

___
2025-07-30 13:42:08 +02:00
Nuno Pato
129ec1edfc feat: dashboard: new onboarding (#3398)
### **PR Type**
Enhancement


___

### **Description**
- New onboarding flow onboarding flow implemented

- Sign-up and sign-in pages redesigned

- Organization creation process updated

- Project creation step added to onboarding


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Sign Up"] --> B["Create Organization"]
  B --> C["Choose Plan"]
  C --> D["Create Project"]
  D --> E["Dashboard"]
  F["Sign In"] --> G["New Design"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___

---------

Co-authored-by: robertkasza <robert.kasza@bishop-co.com>
Co-authored-by: David BM <correodelnino@gmail.com>
2025-07-30 10:07:09 +00:00
David Barroso
40439b9987 chore (docs): updated postgres extension and added new custom claims default option (#3404)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Updated Postgres extensions list and versions

- Added new pg_search extension documentation

- Included custom claims default option

- Minor configuration and formatting improvements


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Postgres Extensions"] --> B["Update List"]
  A --> C["Add pg_search"]
  D["Auth Configuration"] --> E["Add Default Claim"]
  F["Documentation"] --> G["Improve Formatting"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>short-jars-report.md</strong><dd><code>Add changeset
for version update and feature description</code>&nbsp; </dd></summary>
<hr>

.changeset/short-jars-report.md

<ul><li>Added new changeset file for version bump<br> <li> Described
changes to Postgres extension and custom claims</ul>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>extensions.mdx</strong><dd><code>Update Postgres
extensions list and add pg_search documentation</code></dd></summary>
<hr>

docs/products/database/extensions.mdx

<ul><li>Updated Postgres extensions list with new versions<br> <li>
Improved table formatting for better readability<br> <li> Added
documentation for new pg_search extension<br> <li> Updated TimescaleDB
version and removed duplicate code</ul>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>configuring-postgres.mdx</strong><dd><code>Add
trackIoTiming configuration option</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/products/database/configuring-postgres.mdx

- Added `trackIoTiming = 'on'` to Postgres configuration


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>permissions.mdx</strong><dd><code>Add default value for
custom claim in auth configuration</code>&nbsp; </dd></summary>
<hr>

docs/products/graphql/permissions.mdx

- Added default value for custom claim 'organization-id'


</details>


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

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

</details>

___
2025-07-30 10:42:49 +02:00
Sumanth Chinthagunta
6c3ed7ba55 feat: apply defaults for customClaims (#661) 2025-07-29 10:46:01 +02:00
robertkasza
cffa161da7 fix (dashboard): disable settings in the header when self-hosting (#3402)
### **PR Type**
Bug fix


___

### **Description**
- Disable settings in header for self-hosted environments

- Implement `useSettingsDisabled` hook for conditional rendering

- Update project pages array with new disabled logic

- Add changeset for patch version bump


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["useSettingsDisabled Hook"] --> B["ProjectPagesComboBox"]
  B --> C["Settings Option"]
  C --> D{"isSettingsDisabled?"}
  D -->|Yes| E["Disabled"]
  D -->|No| F["Enabled"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<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>ProjectPagesComboBox.tsx</strong><dd><code>Implement
settings disabling logic in ProjectPagesComboBox</code></dd></summary>
<hr>

dashboard/src/components/layout/Header/ProjectPagesComboBox.tsx

<ul><li>Import <code>useSettingsDisabled</code> hook<br> <li> Add
<code>isSettingsDisabled</code> state<br> <li> Update
<code>Settings</code> option in <code>projectPages</code> array<br> <li>
Add <code>isSettingsDisabled</code> to dependency array</ul>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3402/files#diff-70b3af41358f0a22b83e502409a70a0df15e8946d958dbaee4c32b6ebdb38cf6">+5/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>strange-lamps-compare.md</strong><dd><code>Add
changeset for dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/strange-lamps-compare.md

<ul><li>Add changeset file for patch version bump<br> <li> Include fix
description for dashboard</ul>


</details>


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

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

</details>

___
2025-07-25 15:21:58 +02:00
robertkasza
4ffff86752 fix (dashboard): disable settings when there is no config server env variable present (#3394)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Disable settings when no config server variable

- Improve platform-specific page handling

- Enhance error handling and loading states

- Refactor environment variable checks


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Environment Check"] --> B["Settings Visibility"]
  A --> C["Platform-specific Pages"]
  D["Error Handling"] --> E["Loading States"]
  F["Code Refactoring"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-07-25 13:05:04 +02:00
Gayathri-K-Binoy
f9e170e958 chore (docs): fix typos (#3396) 2025-07-25 10:46:53 +02:00
robertkasza
b8cb491ab1 fix: update dependencies to fix vulnerabilities (#3399)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Update dependencies to address vulnerabilities

- Improve DTS plugin configuration in Vite

- Update Next.js and GraphQL Codegen CLI

- Add resolutions for security patches


___

### Diagram Walkthrough


```mermaid
flowchart LR
  A["Security Updates"] --> B["Dependency Upgrades"]
  B --> C["Next.js 14.2.30"]
  B --> D["GraphQL Codegen CLI 5.0.7"]
  A --> E["Vite DTS Plugin 4.5.4"]
  E --> F["Improved DTS Configuration"]
  A --> G["Additional Resolutions"]
```



<details> <summary><h3> File Walkthrough</h3></summary>

<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody></tr></tbody></table>

</details>

___
2025-07-23 13:55:15 +02:00
David Barroso
c575700f96 fix: return 401 if refreshtoken is consumed in flight (#662)
### **PR Type**
Bug fix


___

### **Description**
- Return 401 error if refresh token is already used

- Improve error handling for refresh token endpoint

- Add specific logging for invalid refresh token usage

- Prevent 500 error for consumed refresh tokens


___

### **Changes diagram**

```mermaid
flowchart LR
  A["Refresh token request received"] -- "UpdateSession fails with ErrInvalidRefreshToken" --> B["Log error: invalid refresh token"]
  B -- "Return 401 Unauthorized" --> C["Client receives 401"]
  A -- "Other error" --> D["Log error: updating session"]
  D -- "Return 500 Internal Server Error" --> E["Client receives 500"]
```


___



### **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>refresh_token.go</strong><dd><code>Handle consumed
refresh tokens with 401 response</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/refresh_token.go

<li>Add specific check for <code>ErrInvalidRefreshToken</code> after
session update<br> <li> Log and return 401 Unauthorized if refresh token
is already used<br> <li> Retain generic error handling for other errors


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/662/files#diff-16ffb1ba5f2e8238f2fdd946bcd00f768c512125d87ad9b9878a1530a5bd4129">+5/-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-07-21 07:44:32 +02:00
David BM
59249e5161 fix (dashboard): elevate permissions in password reset (#3392)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Refactored password reset to use elevated permissions hook

- Improved error and success handling in password reset flow

- Added a changeset documenting the permission elevation fix

- Removed direct toast usage from password reset logic


___

### **Changes diagram**

```mermaid
flowchart LR
  A["Reset Password Page"] -- "calls" --> B["useActionWithElevatedPermissions"]
  B -- "handles" --> C["Password Change Action"]
  C -- "on success" --> D["Redirect to Home"]
  C -- "shows" --> E["Success/Error Message"]
```


___



### **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>reset.tsx</strong><dd><code>Refactor password reset to
use elevated permissions hook</code>&nbsp; </dd></summary>
<hr>

dashboard/src/pages/password/reset.tsx

<li>Replaced direct password change logic with
<br><code>useActionWithElevatedPermissions</code> hook<br> <li>
Centralized success and error handling via the hook<br> <li> Removed
direct toast notifications from the component<br> <li> Streamlined
password reset submission logic


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3392/files#diff-0b60d94b63e36ce54a4dafb098322e11b9a130defb0f48984f8b3e71461e8011">+10/-15</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>lemon-papayas-act.md</strong><dd><code>Add changeset
for password reset permission fix</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/lemon-papayas-act.md

<li>Added a changeset documenting the permission elevation fix in
password <br>reset


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3392/files#diff-bae78ce46846e38b416ebbc4b599670fbe5384c8c850b9d97b3a8924f2d60327">+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-07-16 14:36:28 +02:00
robertkasza
df6b85e98c fix (dashboard): fix password reset redirect url (#3391)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fixed password reset redirect to use absolute URL.

- Removed duplicate sign-up tabs and extra legal text.

- Added direct sign-in prompt for existing users.

- Added changeset entry for the patch update.


___

### **Changes diagram**

```mermaid
flowchart LR
  A["Password reset redirect (relative)"] -- "Changed to absolute URL" --> B["Password reset redirect (absolute)"]
  C["Sign-up page with tabs and legal text"] -- "Removed tabs & extra legal text" --> D["Sign-up page with sign-in prompt"]
  E["No changeset for fix"] -- "Added changeset entry" --> F["Patch changeset for dashboard"]
```


___



### **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>new.tsx</strong><dd><code>Use absolute URL for password
reset redirect</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/pages/password/new.tsx

<li>Changed password reset redirect to use absolute URL.<br> <li>
Ensures correct redirect after password reset email.


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>signup.tsx</strong><dd><code>Streamlined sign-up page
and added sign-in prompt</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/pages/signup.tsx

<li>Removed <code>SignUpTabs</code> and duplicate legal text.<br> <li>
Added prompt for existing users to sign in.<br> <li> Simplified and
clarified sign-up page UI.


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3391/files#diff-fc2b5989e3bbafda1d3d8b2317d24c39ef2b8cec0c4dc410170fa2da13464f68">+4/-19</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>serious-eagles-rule.md</strong><dd><code>Added
changeset for password reset redirect fix</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/serious-eagles-rule.md

<li>Added changeset entry for password reset redirect fix.<br> <li>
Documents patch update for dashboard package.


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3391/files#diff-058395bb4a26b44e46054945b2710688aebefcb9ad898396af1cac658e20b049">+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-07-16 14:03:32 +02:00
robertkasza
85316e822f fix (dashboard): Remove second loading indicator on projects page (#3380)
### **PR Type**
Bug fix


___

### **Description**
- Removed redundant loading indicator from projects page

- Refactored `ProjectsGrid` to accept projects as props

- Updated data fetching to use `useGetProjectsQuery` by org slug

- Cleaned up unused queries and code for project listing


___

### **Changes diagram**

```mermaid
flowchart LR
  A["ProjectsGrid fetches projects internally"] -- "Old" --> B["ProjectsGrid receives projects as props"]
  C["Redundant loading indicator in ProjectsGrid"] -- "Removed" --> D["Single loading indicator in OrgProjects"]
  E["useGetOrganizationProjectsQuery (by orgId)"] -- "Removed" --> F["useGetProjectsQuery (by orgSlug)"]
```


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Miscellaneous</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>AuthenticatedLayout.tsx</strong><dd><code>Clean up
commented authentication check code</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>


dashboard/src/components/layout/AuthenticatedLayout/AuthenticatedLayout.tsx

- Removed commented-out code related to authentication check


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3380/files#diff-2d69ccffd267658f76d77a864cdece93fc222e08f6025955795fc6f4697f60e7">+0/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>projects-grid.tsx</strong><dd><code>Refactor
ProjectsGrid to accept projects as props</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/components/projects/projects-grid/projects-grid.tsx

<li>Refactored <code>ProjectsGrid</code> to accept <code>projects</code>
as a prop<br> <li> Removed internal data fetching and loading/error
handling<br> <li> Cleaned up unused imports and variables


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.tsx</strong><dd><code>Centralize project data
fetching and loading indicator</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/orgs/[orgSlug]/projects/index.tsx

<li>Moved project data fetching to page level using
<code>useGetProjectsQuery</code><br> <li> Passed projects to
<code>ProjectsGrid</code> as props<br> <li> Unified loading indicator to
a single location<br> <li> Switched layout to
<code>AuthenticatedLayout</code>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>graphql.ts</strong><dd><code>Remove deprecated
GetOrganizationProjectsQuery code</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/utils/__generated__/graphql.ts

<li>Removed all code related to
<code>GetOrganizationProjectsQuery</code><br> <li> Cleaned up unused
query types and hooks


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>getOrganizationProjects.gql</strong><dd><code>Remove
unused getOrganizationProjects GraphQL query</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/gql/organizations/getOrganizationProjects.gql

- Deleted unused GraphQL query for organization projects by orgId


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>tame-suits-rest.md</strong><dd><code>Add changeset for
dashboard loading indicator fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/tame-suits-rest.md

- Added changeset entry for dashboard patch fix


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3380/files#diff-e294197b031340c88e9faf8c8a3f2fa3e8795927376dce8e5e15458f55b64301">+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-07-14 10:36:17 +02:00
Nuno Pato
f7d7080dad chore: dashboard: add gtag (#3388)
### **PR Type**
Enhancement


___

### **Description**
- Integrates Google Tag Manager (gtag) into the signup page

- Dynamically injects Google Ads script with error handling

- Cleans up injected script on component unmount

- Adds a changeset entry for the dashboard package


___

### **Changes diagram**

```mermaid
flowchart LR
  SignUpPage["SignUpPage component"]
  useEffect["useEffect hook"]
  Script["Inject Google Ads script"]
  gtag["Initialize gtag & dataLayer"]
  Cleanup["Remove script on unmount"]

  SignUpPage -- "mounts" --> useEffect
  useEffect -- "sets up" --> gtag
  useEffect -- "injects" --> Script
  useEffect -- "cleans up" --> Cleanup
```


___



### **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>signup.tsx</strong><dd><code>Integrate Google Tag
Manager script in signup page</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/pages/signup.tsx

<li>Adds useEffect to inject Google Ads gtag script<br> <li> Initializes
global gtag and dataLayer if not present<br> <li> Handles script
loading, error, and cleanup on unmount


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>thin-steaks-poke.md</strong><dd><code>Add changeset for
dashboard gtag enhancement</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/thin-steaks-poke.md

- Adds a changeset entry for the dashboard package update


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3388/files#diff-57d0a66dc101feb0260a2285ccf8dacb4d90fc478d721b4a4432f169ce11270b">+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-07-11 13:13:13 +00:00
David Barroso
736fc8584f fix: define properly query parameters (#660)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix handling of `allowedRoles` and `metadata` query parameters.

- Update OpenAPI spec for correct query parameter definitions.

- Parse `metadata` as JSON-encoded string in API handler.

- Update tests to use JSON string for `metadata`.


___

### **Changes diagram**

```mermaid
flowchart LR
  openapi["OpenAPI spec (openapi.yaml)"]
  server["Server handler (server.gen.go)"]
  types["API types (types.gen.go)"]
  tests["SignInProvider tests (sign_in_provider_test.go)"]

  openapi -- "Clarify allowedRoles/metadata param types" --> server
  openapi -- "Clarify allowedRoles/metadata param types" --> types
  server -- "Parse metadata as JSON string" --> types
  types -- "Update Metadata docstring" --> tests
  tests -- "Test metadata as JSON string" --> server
```


___



### **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>openapi.yaml</strong><dd><code>Update OpenAPI spec for
allowedRoles and metadata query params</code></dd></summary>
<hr>

docs/openapi.yaml

<li>Add <code>style: form</code> and <code>explode: false</code> for
<code>allowedRoles</code>.<br> <li> Change <code>metadata</code> to a
JSON-encoded string in query parameters.<br> <li> Update
<code>metadata</code> description and schema to reflect JSON encoding.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/660/files#diff-6e0796423f18517e4c44819722b39c2c5ab9999f9dfb37598288ea041d1db2b0">+11/-7</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Fix and parse
allowedRoles/metadata query parameters in handler</code></dd></summary>
<hr>

go/api/server.gen.go

<li>Fix <code>allowedRoles</code> to not require parameter and not
explode.<br> <li> Parse <code>metadata</code> query param as JSON string
and unmarshal into map.<br> <li> Improve error handling for invalid
<code>metadata</code> JSON.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/660/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+177/-169</a></td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Clarify Metadata field
as JSON-encoded string</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/types.gen.go

- Update `Metadata` field comment to specify JSON-encoded string.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/660/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>sign_in_provider_test.go</strong><dd><code>Update test
to use JSON string for metadata param</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/sign_in_provider_test.go

- Update test to provide `metadata` as JSON string.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/660/files#diff-a0673feaf4e6575a6193d136e11b1a0c87cc33fb1ca1eb78ebd2d2f3d9ad8f94">+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>

---------

Co-authored-by: Nuno Pato <nunopato@gmail.com>
2025-07-10 14:11:04 +00:00
David Barroso
ea1537122a chore: improvements to openapi schema (#659) 2025-07-08 11:21:43 +02:00
robertkasza
ec24567d83 fix (dashboard): Add content-type header (#3385)
### **PR Type**
Bug fix


___

### **Description**
- Add `Content-Type: application/json` header to GitHub app installation
request

- Ensure correct content type for POST request in dashboard

- Add changeset entry documenting the bug fix

- Improve API compatibility for GitHub app installation endpoint


___

### **Changes diagram**

```mermaid
flowchart LR
  A["GitHub App Installation Request"] -- "Add Content-Type header" --> B["API Endpoint"]
  B -- "Processes JSON body correctly" --> C["Improved Compatibility"]
```


___



### **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>index.tsx</strong><dd><code>Add Content-Type header to
GitHub app installation POST request</code></dd></summary>
<hr>

dashboard/src/pages/github-app-installation/index.tsx

<li>Add <code>Content-Type: application/json</code> header to POST
request<br> <li> Ensure API receives correct content type for JSON body


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3385/files#diff-617a35daae6c458b9fe6374fe3d72a1f0c17f1975d2180ebed76d6945f8ced3c">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>spicy-camels-work.md</strong><dd><code>Add changeset
entry for Content-Type header fix</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/spicy-camels-work.md

- Add changeset entry describing the bug fix for dashboard


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3385/files#diff-ed215958071054c894c74606f2d96e18e5cc478183f88bebee13bce9e186e975">+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-07-03 19:15:32 +02:00
robertkasza
56c87dad64 fix (dashboard): Use the correct http method when connecting to new github installation (#3384)
### **PR Type**
Bug fix


___

### **Description**
- Fixes HTTP method to 'POST' for GitHub app installation API call

- Adds a changeset entry documenting the bug fix


___

### **Changes diagram**

```mermaid
flowchart LR
  A["GitHub App Installation API Call"] -- "method: GET (incorrect)" --> B["Error/Failure"]
  A -- "method: POST (correct)" --> C["Successful Installation"]
```


___



### **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>index.tsx</strong><dd><code>Use POST method for GitHub
app installation API call</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/github-app-installation/index.tsx

<li>Sets HTTP method to 'POST' in fetch call for GitHub app
installation<br> <li> Ensures correct API interaction when connecting
new GitHub <br>installation


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>big-students-crash.md</strong><dd><code>Add changeset
entry for GitHub installation bug fix</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.changeset/big-students-crash.md

- Adds a patch changeset describing the HTTP method bug fix


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3384/files#diff-114feb4f179f3533e5546f1cdaddfeb232268b6147c41edfa2f1f387a9320085">+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-07-03 18:16:10 +02:00
robertkasza
47ab341ce4 fix (dashboard): Fix announcement layout when title is too short (#3382)
### **User description**
Before:

![image](https://github.com/user-attachments/assets/d8f0404b-fafe-4d30-bb19-f3eeedda31b8)

After:


![image](https://github.com/user-attachments/assets/10dd9986-b461-4466-ae2f-d169f663146b)


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fixed announcement layout for short titles in AnnouncementsTray.

- Updated announcement list to use hardcoded sample data.

- Improved flexbox styling for announcement items.

- Added a changeset entry for the patch release.


___

### **Changes diagram**

```mermaid
flowchart LR
  AnnouncementsTray["AnnouncementsTray.tsx"]
  Styling["Flexbox layout fix"]
  SampleData["Hardcoded announcements data"]
  Changeset[".changeset/wet-sheep-bake.md"]

  AnnouncementsTray -- "uses" --> SampleData
  AnnouncementsTray -- "applies" --> Styling
  AnnouncementsTray -- "documented in" --> Changeset
```


___



### **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>AnnouncementsTray.tsx</strong><dd><code>Fix
announcement layout and use sample data in
AnnouncementsTray</code></dd></summary>
<hr>


dashboard/src/features/orgs/components/members/components/AnnouncementsTray/AnnouncementsTray.tsx

<li>Replaced dynamic announcement fetching with hardcoded sample
data.<br> <li> Fixed flexbox layout for announcement items to handle
short titles.<br> <li> Improved visual alignment and spacing in the
announcement list.


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3382/files#diff-88fdcce3e90fa9e4d172858ae702855f86e6ece724ba443d8a6ed918999a1630">+52/-2</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>wet-sheep-bake.md</strong><dd><code>Add changeset for
announcement layout fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/wet-sheep-bake.md

- Added a changeset entry describing the announcement layout fix.


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3382/files#diff-45895b0cd41c7cf29b27780adee81b07c63884cfe2bc7d9fb589e1017bbba61e">+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-07-03 16:38:04 +02:00
David Barroso
2a65455d44 fix: github: extract email from /emails endpoint (#658)
### **PR Type**
Bug fix


___

### **Description**
- Fix GitHub email extraction to use `/user/emails` endpoint

- Update profile fetching to handle new email structure

- Improve error handling for missing email addresses

- Refactor response body reading and JSON decoding


___

### **Changes diagram**

```mermaid
flowchart LR
  A["fetchOAuthProfile reads response body"] -- "Unmarshal JSON" --> B["result struct"]
  C["GetProfile fetches user profile"] -- "calls /user" --> D["gitHubUser"]
  C -- "calls /user/emails" --> E["gitHubEmail"]
  E -- "extracts email & verified" --> F["oidc.Profile"]
  D -- "other fields" --> F
```


___



### **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>fetch.go</strong><dd><code>Refactor OAuth profile
fetching and error handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/providers/fetch.go

<li>Refactored to read response body before JSON unmarshalling<br> <li>
Improved error messages for body reading and unmarshalling


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/658/files#diff-5a0f72f832df09988c078d201fd82c44b360b270ff7f54b23b2af380efca9e8d">+9/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>github.go</strong><dd><code>Fix GitHub email extraction
and improve error handling</code>&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/providers/github.go

<li>Added call to <code>/user/emails</code> endpoint for email
extraction<br> <li> Introduced <code>gitHubEmail</code> struct for email
parsing<br> <li> Updated profile construction to use verified email<br>
<li> Added error handling for missing email addresses


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/658/files#diff-ab1c065b25657f32b46729b866d6ffe16808879211796a86e61f38e577c35510">+23/-2</a>&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-07-01 15:36:02 +02:00
github-actions[bot]
5fed49e05b chore: update versions (#3370)
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.8.0

### Minor Changes

-   aee9a80: chore: update typescript version to the latest

## @nhost/nhost-js@3.3.0

### Minor Changes

-   aee9a80: chore: update typescript version to the latest

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/hasura-storage-js@2.8.0

## @nhost/apollo@9.0.0

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

## @nhost/react-apollo@18.0.1

### Patch Changes

-   @nhost/apollo@9.0.0
-   @nhost/react@3.11.1

## @nhost/react-urql@15.0.1

### Patch Changes

-   @nhost/react@3.11.1

## @nhost/nextjs@2.2.9

### Patch Changes

-   @nhost/react@3.11.1

## @nhost/react@3.11.1

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

## @nhost/vue@2.9.7

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

## @nhost/dashboard@2.33.0

### Minor Changes

-   aee9a80: chore: update typescript version to the latest
-   5ef3f76: chore (dashboard): Use the new SDK in the Dashboard

### Patch Changes

- 9ed8ce8: fix (dashboard): Request new Mfa ticket after an invalid totp
when signing in
- fd3b5c7: fix (dashboard): Limit new project's name to a maximum of 32
charachters in E2E tests

## @nhost/docs@2.33.0

### Minor Changes

-   4ca9641: feat: added cloud development documentation

## @nhost-examples/cli@0.3.23

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

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

### Patch Changes

-   @nhost/react@3.11.1
-   @nhost/react-apollo@18.0.1

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

### Patch Changes

-   @nhost/react@3.11.1

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

### Patch Changes

-   @nhost/react@3.11.1
-   @nhost/react-urql@15.0.1

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

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

## @nhost-examples/nextjs@0.4.9

### Patch Changes

-   @nhost/react@3.11.1
-   @nhost/react-apollo@18.0.1
-   @nhost/nextjs@2.2.9

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

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

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

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

## @nhost-examples/sveltekit@0.8.2

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0

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

### Patch Changes

-   @nhost/react@3.11.1
-   @nhost/react-apollo@18.0.1

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

### Patch Changes

-   @nhost/react@3.11.1

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

### Patch Changes

-   @nhost/react@3.11.1
-   @nhost/react-apollo@18.0.1

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

### Patch Changes

-   Updated dependencies [aee9a80]
    -   @nhost/nhost-js@3.3.0
    -   @nhost/apollo@9.0.0
    -   @nhost/vue@2.9.7

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

### Patch Changes

-   @nhost/apollo@9.0.0
-   @nhost/vue@2.9.7

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-01 13:00:12 +02:00
David Barroso
c42e65b54f fix: minor backward compatibility changes (#657)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Ensure backward compatibility for Postgres `sslmode` in migrations.

- Use correct connection flag for migration command.

- Add legacy `/healthz` endpoints for API prefix compatibility.


___



### **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>postgres.go</strong><dd><code>Ensure Postgres URL
includes sslmode for migrations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/migrations/postgres.go

<li>Add logic to append <code>sslmode=disable</code> if missing in
Postgres URL.<br> <li> Enhance migration function for backward
compatibility.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/657/files#diff-a46a7f6d67414014968d95e99e60baf0b0827f7a5ec785a12f9245ddc8d5854b">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>serve.go</strong><dd><code>Add legacy /healthz
endpoints for backward compatibility</code>&nbsp; </dd></summary>
<hr>

go/cmd/serve.go

<li>Add <code>/healthz</code> GET and HEAD endpoints without API prefix
for <br>compatibility.<br> <li> Maintain legacy health endpoints
alongside prefixed ones.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/657/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+10/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>migrations.go</strong><dd><code>Use correct flag for
migration connection string</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/cmd/migrations.go

<li>Use <code>flagPostgresMigrationsConnection</code> instead of
<br><code>flagPostgresConnection</code>.<br> <li> Fix migration command
to use correct connection string.


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/657/files#diff-8902ab7f0135be38b5d4c9e50105df8c79a3f7c4ce73c6006ed9cc751d652a7b">+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-07-01 12:36:09 +02:00
robertkasza
aee9a80ac8 chore: update typescript to latest version (#3376)
### **PR Type**
Enhancement, Other


___

### **Description**
- Update TypeScript to version 5.8.3

- Upgrade react-merge-refs to version 3.0.2

- Refactor import syntax for mergeRefs

- Update tsconfig settings for modern JavaScript


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>ControlledAutocomplete.tsx</strong><dd><code>Update import
syntax for mergeRefs</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-e1bbef866e556facc768a4239b443e193f460321689e368fcaae31c1a7c90478">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ControlledCheckbox.tsx</strong><dd><code>Update import and
type reference for mergeRefs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-6f7d29735900a65f96663da4719bf151c5c98224c0a4e39d84b9e5e1db6b8c42">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ControlledSelect.tsx</strong><dd><code>Update import and
type reference for mergeRefs</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-4dda68ad8ea568203b515c9cb81eabd05109f55b10e96712924744aba8c22468">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ControlledSwitch.tsx</strong><dd><code>Update import syntax
for mergeRefs</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-173b17a003d4d330b2a7157258d0d34cbbbac6ae10840245294f22a8e6ef89ed">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Checkbox.tsx</strong><dd><code>Update ForwardedRef type for
Checkbox component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-16e6ada0fb8f9c0ecaa00fcfc61c166d0c4c051efe5345d58ee5e4ab618ca0c5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Input.tsx</strong><dd><code>Update import syntax for
mergeRefs</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-16643cae2ae39d51faa2ed4d7e045f4ec2af31ec5f91768cff742e0364400cb1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Radio.tsx</strong><dd><code>Update ForwardedRef type for
Radio component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-cab2e6a6d80963fb89d93b52ac228ab8f2e2d9d60d3d2567547da562e922ac63">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>LogsServiceFilter.tsx</strong><dd><code>Update ForwardedRef
type for LogsServiceFilter</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-a590a7298a9f040df9f26c4eb37d10fc36f47c32996f71aec47796f08c44e892">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ReferencedSchemaSelect.tsx</strong><dd><code>Update
ForwardedRef type for ReferencedSchemaSelect</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-450038e1607012a27e047ef0fa3e7c3ba58a4be7750940aa21c7166713b15c76">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DataGrid.tsx</strong><dd><code>Update import syntax for
mergeRefs</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-3bc6476aed14d8e4f26134fa452d22c41b6d3ecb0989871a8a99230a82496474">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DataGridBooleanCell.tsx</strong><dd><code>Update
useDataGridCell generic type</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-b700eacab9c73b147e248ce58d47a208c1e499124a20444efd73db7ecb68505f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>getAllocatedResources.test.ts</strong><dd><code>Remove
replicas property from test cases</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-c7db4fcf0770eb6e4eba76db64b1c705404538a3c204ea212028cad591c6d85a">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>4 files</summary><table>
<tr>
<td><strong>tsconfig.base.json</strong><dd><code>Update TypeScript
compiler options for ES2022</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-1542b47836923af953e9f14d4db6843171edb79232ba834276394b4ed3035c63">+4/-15</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>tsconfig.json</strong><dd><code>Update TypeScript target and
adjust paths</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-9c3967d850eef2a3a17b5169df09de68ecb0f24ec46f0a9dd1b3ca7c6da7a384">+9/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tsconfig.json</strong><dd><code>Add typeRoots to compiler
options</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-aa2c7a9ede2c1897e087efac48742cf228b8af42e73dec31ec6403461b98c63a">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tsconfig.json</strong><dd><code>Add typeRoots to compiler
options</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-6b59df76b8f353267e50f13e5fdd23ff7490a417bdc9b7e9f4e94aaafa448dcd">+7/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Upgrade react-merge-refs to
version 3.0.2</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Upgrade TypeScript to version
5.8.3</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3376/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-07-01 11:07:17 +02:00
robertkasza
5ef3f76ea0 chore (dashboard): use new sdk on the dashboard (#3374)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Migrate from @nhost/nextjs to @nhost/nhost-js-beta

- Update authentication flow and components

- Refactor Apollo client and GraphQL operations

- Implement new session management and storage


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>MfaOtpForm.tsx</strong><dd><code>Refactor MFA OTP form error
handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-88ee3610a0658d5eead85db025a5e91e74a4d2f2a836adf7eb44ff80888a613b">+11/-9</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>66
files</summary><table>
<tr>
<td><strong>AccountMenu.tsx</strong><dd><code>Update account menu to use
new SDK hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-57e70c7e6a22a5ab5271b2f36a54eabf544d9f62cd18dae83e2e89b125e77e0c">+10/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AuthenticatedLayout.tsx</strong><dd><code>Refactor
authenticated layout with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-2d69ccffd267658f76d77a864cdece93fc222e08f6025955795fc6f4697f60e7">+15/-13</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>MobileNav.tsx</strong><dd><code>Update mobile navigation to
use new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-88408885daaec8805bd085b53462c9f2d95db32f7e523912837a8167211b4fb2">+14/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>UnauthenticatedLayout.tsx</strong><dd><code>Refactor
unauthenticated layout with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-54ee5ad9c01e99ffb05218020a6b97d091cd97cc53ad27e950480a3e675f2220">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ErrorToast.tsx</strong><dd><code>Update error toast to use
new SDK hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-189ba99303a20e964b5e3f3d6f1cf95c6376780a59604d1dee98aa84d9a2a9dc">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DisableMfaButton.tsx</strong><dd><code>Refactor MFA disable
button with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-8548174093cd8b3bcd754b630c0bcc946e7cdc80176f8e0f0540fd60c9e47486">+17/-18</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>MfaQRCodeAndTOTPSecret.tsx</strong><dd><code>Update MFA
enable process with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-91870bba41e6e807ced8d185a9d61282540ca82741a938b12f20c4f452bdabf8">+30/-29</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useMfaEnabled.ts</strong><dd><code>Refactor MFA enabled hook
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-31d2af339a8dd32beff8cce79962fa0dd23b6c89687b21aa75663ebeccb0b154">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>CreatePATForm.tsx</strong><dd><code>Update PAT creation form
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-75aecb06ebb3e3cd0de6bf253af6966e245e46e9b739314d49073ba2c80a3a90">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeleteAccount.tsx</strong><dd><code>Refactor account
deletion with new SDK hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3d84927ffa4b91d986ff6c6f601b3476503220e1c1d8cde25ebf72c8d0ed6b9e">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DisplayNameSetting.tsx</strong><dd><code>Update display name
setting with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-a1daec18d5c3196aee5b2c5303db5654724f8d37cfa427594951a4d02fbe32db">+4/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>EmailSetting.tsx</strong><dd><code>Refactor email setting
with new SDK hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-98bdf4ebec67ab2b4cd475c9df16a39a66505da961a8448eb5e41a33544dcb38">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useOnChangePasswordHandler.ts</strong><dd><code>Update
password change handler with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-be0c02de792e4ba1b71258eb3992bbc531bc37658cbad0e01e2db4419a9285f1">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useOnAddNewSecurityKeyHandler.ts</strong><dd><code>Refactor
security key addition with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3514a6d1514269a83f37fc25e9cb24add9d5d74f9cf3341293c0e0f2a4c2e286">+10/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useRemoveSecurityKey.ts</strong><dd><code>Update security
key removal with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-5683e00a14f39018d8fe58a3116c2a8ea6d2f2a83abb2177bbf0ee8ddf0f97b5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SocialProvidersSettings.tsx</strong><dd><code>Refactor
social providers settings with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-82d7c0c9eb3a23586998b6eadff9e56b123b14d03179212ca82439d3bdcd6e96">+14/-5</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useActionWithElevatedPermissions.ts</strong><dd><code>Update
elevated permissions hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3390879c4a0cd70aa1db6672a1607c5c2444c0bf653b711d73eda8ee466aa61a">+10/-16</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useElevatedPermissions.ts</strong><dd><code>Refactor
elevated permissions hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-c1e4f573300c771149cc2e59918c9acf2ae5f8a6680800a899707c70800ba144">+11/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useGetSecurityKeys.ts</strong><dd><code>Update security keys
fetching with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-1f9fed870cab61f15e304342e4913edab0f5537eeb6230070de4b4f7173fa138">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useGithubAuthentication.ts</strong><dd><code>Refactor GitHub
authentication with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-fad4875e0f07391dadcfc7e2dd481cafd5172dbb740c47e56fa75beb271618e1">+16/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SignInWithSecurityKey.tsx</strong><dd><code>Update security
key sign-in with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-dc892fd3d9fd3cc7efca35c813cea43c63aa691b1d55d376ac69a2d75065bde9">+9/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>VerifyEmailDialog.tsx</strong><dd><code>Refactor email
verification dialog for security key</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-24699641924d25d9b2d72b7df5da44d837e1c1e5c77b9f4b00f7c07d12c72c42">+4/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useSignInWithSecurityKey.ts</strong><dd><code>Update
security key sign-in hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-14ce9eae9e1ec03512bdd55198fbce47a81ce8ce769d002164926d2cc76e91aa">+34/-21</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>MfaSignInOtpForm.tsx</strong><dd><code>Refactor MFA OTP form
for sign-in</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-91eba232beb0543b1e972ed9a21a0be797ed94b720487834bb3316a5dbd732f5">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SignInWithEmailAndPassword.tsx</strong><dd><code>Update
email/password sign-in with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-a2b70644663baf4f6f2cdffd846d4d743a5ca1f2a64c4b278b6f04c6c5c92161">+34/-12</a>&nbsp;
</td>

</tr>

<tr>

<td><strong>SignInWithEmailAndPasswordForm.tsx</strong><dd><code>Refactor
email/password sign-in form with loading state</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-a07fd6bd20c97d0c9c875e690cd3a80068fc58f74d3579feb210e189d32f5031">+5/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>useOnSignInWithEmailAndPasswordHandler.ts</strong><dd><code>Update
email/password sign-in handler with new SDK</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-1a253bfc02c3267ab1c6b58c07aa06142b7e711d613b672c8420ff2861b12d27">+35/-37</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useRequestNewMfaTicket.ts</strong><dd><code>Refactor MFA
ticket request with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-64a3a91cf75c8faf5bf6a9fdd23978659d68888744a92f82602b1a2f7290c1f6">+12/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useOnSignUpWithPasswordHandler.ts</strong><dd><code>Update
email/password sign-up handler with new SDK</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-d1a80c5b1076129735ffff9ea879ca8c8fe88e548d06e98a1fb6bfd7147dae01">+14/-19</a>&nbsp;
</td>

</tr>

<tr>

<td><strong>useSignupWithSecurityKeyHandler.ts</strong><dd><code>Refactor
security key sign-up with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-cef4f710ea89c67e27e9fe77db2d2ebc6d774657e0671b21b7353f3e927126bd">+24/-17</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>CreateOrgFormDialog.tsx</strong><dd><code>Update
organization creation dialog with new SDK</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-9a1ed9e851328393b81356d80ade3509016aa55c254ed1f4deb692b0bd96f02e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TransferProjectForm.tsx</strong><dd><code>Refactor project
transfer form with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3324c79d8b4d48777467132ba0f13a95d4b0f1a9fbb4df9fd7f67735ac40cbbd">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>Soc2Download.tsx</strong><dd><code>Update SOC2 report
download with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3768eb3fc718d4780028c34b5c76388e8d93cbbac94868f82c1a262fb9cc1100">+12/-19</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>AnnouncementsTray.tsx</strong><dd><code>Refactor
announcements tray with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-88fdcce3e90fa9e4d172858ae702855f86e6ece724ba443d8a6ed918999a1630">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>NotificationsTray.tsx</strong><dd><code>Update notifications
tray with new SDK hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-8b559ee1d3176203e8a4e1588924d57944d09d792117ed578b27cd5401ee5d4f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>OrgMember.tsx</strong><dd><code>Refactor organization member
component with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-a50b1baab968a7d3bd1459ba01107a13bd25e5077b6ad49a0d7e9dd88992276a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useFinishOrgCreation.ts</strong><dd><code>Update
organization creation finish hook with new SDK</code>&nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3b8bf7608ab36d8ab0df895e400f0d2d9e29fad2055b40b33d8d9912a27c99c3">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useIsOrgAdmin.ts</strong><dd><code>Refactor organization
admin check with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-216a850dad38e829d0a8892c34d87426cd68f10c92f4c647673667dbbd11464d">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>MessageBox.tsx</strong><dd><code>Update dev assistant
message box with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-d4dd97b5a55f8246836226333d35a1c18c2907e47bdd2654707ed43ac54f2fb8">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationInfo.tsx</strong><dd><code>Refactor application
info component with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-7372ad22d70c3c354d8e0dd442eb7e49f70f65a386b934b6eee7f8c4b89c3a3f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationPausedBanner.tsx</strong><dd><code>Update paused
application banner with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-fa94285530f7118d9f27a2d9088f5cf6ba71879d14957d91eb01dba16b6b6f1c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>RemoveApplicationModal.tsx</strong><dd><code>Refactor
application removal modal with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-e454a42c12dcbfcfaa463ab3421037408634e3a539f460525c79d68adfc118ab">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useAppPausedReason.ts</strong><dd><code>Update app paused
reason hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-51d220574b3da84f08d2cb134682172ed11b908c4d855ccc8d9de30805921a00">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useCheckProvisioning.ts</strong><dd><code>Refactor
provisioning check hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-e1758bb8d3381f814d6619dc33eee8b36e39d2fcb6486d5c8cc3c46bbe62c555">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useIsCurrentUserOwner.ts</strong><dd><code>Update current
user ownership check with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3941cc4f23c66f12e94850e88e05ca142a627ab2d9ec797ff757dab679c58c0f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectRedirectWhenReady.ts</strong><dd><code>Refactor
project redirect hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-a234bc908266de3091b23b5134a01fd769f96759eb52aa108d2ad4b796b0303f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ResetDatabasePasswordSettings.tsx</strong><dd><code>Update
database password reset with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-46fc60a26a2de3efb98e9778b1c6e82d62823ae5c7534037eb120728cba26288">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentListItem.tsx</strong><dd><code>Refactor deployment
list item with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-2a548c457ff2ab8fc1bee326a6a3b5eae9d0d6eb18f5ae95bbdb437c3f6b0a73">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>SystemEnvironmentVariableSettings.tsx</strong><dd><code>Update
system environment variables with new SDK</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-b952daa2a34e49a14c5a471477fa2d50583091e420d88a3b941503b092d18e5c">+7/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>BaseDirectorySettings.tsx</strong><dd><code>Refactor base
directory settings with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-50bcccdf949a19ce69fa86acdd63b5291fa2beaba07191a62c87d40ea5b94e88">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentBranchSettings.tsx</strong><dd><code>Update
deployment branch settings with new SDK</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-d8fc80cc734f593c686f873536856bf9103efb1115ca865709bbeb7bd940895e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useAppClient.ts</strong><dd><code>Refactor app client hook
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-0aa83222c0e0eac6f0058070de2b199e5e78514cbba405eb98d3693329a93e65">+13/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useCurrentOrg.tsx</strong><dd><code>Update current
organization hook with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-97e1dbde4beece374834d5e81dd56fddeb5f1756a3358f6afecf88df93f6b0b0">+60/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useOrgs.ts</strong><dd><code>Refactor organizations hook
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-995629b13bac07ec5c0e79caa8f5f8df19fc842d1b8cfe8fd2b1fcd9448868c4">+5/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProject.ts</strong><dd><code>Update project hook with new
SDK</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-ef96f340af7a87a1fc60c42d8f4de846a2a54fde830a9461c64cfbc99dc11128">+8/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useProjectLogs.ts</strong><dd><code>Update project logs hook
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-10efc67700b3f024dd03442eacd339802e951696d04caa76bd5a864bd5c7c83f">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectWithState.ts</strong><dd><code>Refactor project
with state hook using new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-4fa0e580d9f12e35ff5d2751597bf443bd055cd1c854cf6b356110724d424188">+7/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DataGridPreviewCell.tsx</strong><dd><code>Update data grid
preview cell with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-d7bffe5896d2c9bac505fa9675790c59549d4fb35a2ad0cce903cc0aa31a8321">+7/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>FilesDataGrid.tsx</strong><dd><code>Refactor files data grid
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-18c8df727e1a4fc6a94d03bd4a3a7a8cb3ad44d754803c4c7988c1c00a4b7caf">+20/-15</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>FilesDataGridControls.tsx</strong><dd><code>Update files
data grid controls with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-b85b40168e9c149331a68cb1a0cbec570c75233fa34385945e094b8f4c032974">+15/-30</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useAccessToken.ts</strong><dd><code>Add new hook for
accessing token with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-1e7322930841a7ee092650eedafab9b83a8eb2d376aa299f3dfd790304a7ad21">+9/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useDecodedAccessToken.ts</strong><dd><code>Add new hook for
decoding access token</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-ff3f112dfd0dae55404d17d972f5309d9a8cf0859222061e1c6f10e52c442390">+28/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useElevateEmail.ts</strong><dd><code>Add new hook for email
elevation with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-b38d4c8f500fe9f40d4649e78907fc2f8691bd950b377e85be9142226b2b3460">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useHasuraClaims.ts</strong><dd><code>Add new hook for Hasura
claims with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-f5352373468a509527f74db8d16a632905284009ed386ea50cd9fb7f42817431">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useUserData.ts</strong><dd><code>Add new hook for user data
with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-3e3f3684aba10abe1d06d0be625a8077efe2e7d6a17b79d5ecddd43cfc190224">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove old remote application
GraphQL client hook</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-d2d725306920bf5413fc010843e4ca13570b225febb200330e8c6902ae0b085c">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>useProjectLogs.test.ts</strong><dd><code>Refactor project
logs test with new SDK</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3374/files#diff-13d900aa08d06962a09628136b893801ad62a96c3ff89d380c5c4b7ae92d891e">+19/-31</a>&nbsp;
</td>

</tr>
</table></details></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-06-30 14:31:29 +02:00
dependabot[bot]
fa456fb7b1 chore: bump nixbuild/nix-quick-install-action from 31 to 32 (#656)
### **User description**
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 31 to 32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v32</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.24.14 -&gt; 2.24.15, 2.26.3 -&gt; 2.26.4,
2.28.3 -&gt; 2.28.4, 2.29.1 -&gt; 2.29.1. This fixes the security
vulnerabilities
reported in <a
href="https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/">https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/</a>.</p>
</li>
<li>
<p>Bump default Nix version: 2.29.0 -&gt; 2.29.1</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v32</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.24.14 -&gt; 2.24.15, 2.26.3 -&gt; 2.26.4,
2.28.3 -&gt; 2.28.4, 2.29.1 -&gt; 2.29.1. This fixes the security
vulnerabilities
reported in <a
href="https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/">https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/</a>.</p>
</li>
<li>
<p>Bump default Nix version: 2.29.0 -&gt; 2.29.1</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="63ca48f939"><code>63ca48f</code></a>
Release v32</li>
<li><a
href="561f57d8ff"><code>561f57d</code></a>
Fix Nix versions</li>
<li><a
href="fb259be9d0"><code>fb259be</code></a>
Fix Nix versions</li>
<li><a
href="78439c724d"><code>78439c7</code></a>
Update Nix versions (<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/69">#69</a>)</li>
<li><a
href="b0bad79cb8"><code>b0bad79</code></a>
Fix version</li>
<li><a
href="c3bd2b7f38"><code>c3bd2b7</code></a>
Update README and workflows for v31</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v31...v32">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=31&new-version=32)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
enhancement, dependencies


___

### **Description**
- Upgraded `nixbuild/nix-quick-install-action` from v31 to v32 in CI
workflow

- Ensures use of latest Nix installer with security updates

- No other workflow or code changes included


___



### **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>gen_schedule_update_deps.yaml</strong><dd><code>Upgrade
nix-quick-install-action to v32 in workflow</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_schedule_update_deps.yaml

<li>Updated the GitHub Actions step to use
<br><code>nixbuild/nix-quick-install-action@v32</code> instead of
v31<br> <li> Keeps CI environment up-to-date with latest Nix installer
and security <br>fixes


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/656/files#diff-ae003e22c1e5cbf186e1749d77dec35965e521d2583ba8cf45fcb1c8f300e177">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 10:32:48 +02:00
dependabot[bot]
40707e534e chore: bump nixbuild/nix-quick-install-action from 31 to 32 (#244)
### **User description**
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 31 to 32.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v32</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.24.14 -&gt; 2.24.15, 2.26.3 -&gt; 2.26.4,
2.28.3 -&gt; 2.28.4, 2.29.1 -&gt; 2.29.1. This fixes the security
vulnerabilities
reported in <a
href="https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/">https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/</a>.</p>
</li>
<li>
<p>Bump default Nix version: 2.29.0 -&gt; 2.29.1</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.29.1</li>
<li>2.28.4</li>
<li>2.26.4</li>
<li>2.24.15</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v32</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.24.14 -&gt; 2.24.15, 2.26.3 -&gt; 2.26.4,
2.28.3 -&gt; 2.28.4, 2.29.1 -&gt; 2.29.1. This fixes the security
vulnerabilities
reported in <a
href="https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/">https://discourse.nixos.org/t/security-advisory-privilege-escalations-in-nix-lix-and-guix/</a>.</p>
</li>
<li>
<p>Bump default Nix version: 2.29.0 -&gt; 2.29.1</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="63ca48f939"><code>63ca48f</code></a>
Release v32</li>
<li><a
href="561f57d8ff"><code>561f57d</code></a>
Fix Nix versions</li>
<li><a
href="fb259be9d0"><code>fb259be</code></a>
Fix Nix versions</li>
<li><a
href="78439c724d"><code>78439c7</code></a>
Update Nix versions (<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/69">#69</a>)</li>
<li><a
href="b0bad79cb8"><code>b0bad79</code></a>
Fix version</li>
<li><a
href="c3bd2b7f38"><code>c3bd2b7</code></a>
Update README and workflows for v31</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v31...v32">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=31&new-version=32)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
dependencies


___

### **Description**
- Bump `nixbuild/nix-quick-install-action` from v31 to v32 in workflow

- Updates CI to use latest Nix installer action version

- No application or logic changes, CI/dependency update only


___



### **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>gen_schedule_update_deps.yaml</strong><dd><code>Update
Nix installer action to v32 in workflow</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_schedule_update_deps.yaml

<li>Updated GitHub Actions workflow to use
<br><code>nixbuild/nix-quick-install-action@v32</code> instead of
v31<br> <li> Ensures CI uses the latest version of the Nix installer
action


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/244/files#diff-ae003e22c1e5cbf186e1749d77dec35965e521d2583ba8cf45fcb1c8f300e177">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-26 10:31:23 +02:00
David Barroso
4ca9641304 feat (docs): added cloud development documentation (#3377) 2025-06-25 23:24:10 +02:00
David Barroso
c7e577b513 feat: migrate last few endpoints to golang (#653)
### **User description**
🎉🎉🎉🎉🎉🎉🎉

Node.js is no more from the service. Tests have also been migrated to
bun as it was a drop-in replacement and speed things up.

___

### **PR Type**
Enhancement


___

### **Description**
- Add three new authentication endpoints to Go API

- Implement user signout with single/all session options

- Add JWT token verification endpoint functionality

- Include user information retrieval endpoint


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>11
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Add generated server code
for new endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+307/-94</a></td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Add request/response types
for new endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+27/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Add DeleteRefreshToken
method to DBClient interface</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>errors.go</strong><dd><code>Add error handling for new
endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>get_user.go</strong><dd><code>Implement GET /user endpoint
handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-ff88db799ee5509cf87961dfbe457becac8368c0219dc3048a7962113b5a23e2">+78/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signout.go</strong><dd><code>Implement POST /signout
endpoint handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-682119325058fb9866c24830d910fc19e734c1f3bde7d61a4f671cc17b93ff96">+38/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_token_verify.go</strong><dd><code>Implement POST
/token/verify endpoint handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-fc96c64f7ae67cf4ad34de7e9bc5cb19129e71dd6274c58e5749750df620e0e8">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>workflows.go</strong><dd><code>Add JWT verification and
token deletion workflows</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+71/-5</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql.go</strong><dd><code>Add generated
DeleteRefreshToken database method</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+10/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>openapi.yaml</strong><dd><code>Add OpenAPI specs for new
endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+87/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql</strong><dd><code>Add DeleteRefreshToken SQL
query</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-c19dd96472c44a7389d4d1f72e0a1879df1e06e8e4d333ca3cb6b6dfbe3083ef">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>17
files</summary><table>
<tr>
<td><strong>get_user_test.go</strong><dd><code>Add comprehensive tests
for user endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-a384a0b80b29014dd574d56c5e5eda6f41470acdfbe8dabbe3af3b9159e0e735">+154/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Add mock for
DeleteRefreshToken method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-f1b1f168b0924b023c571d6274d53defef472a872f5fee4de1c4ae78959cc327">+14/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>post_elevate_webauthn_verify_test.go</strong><dd><code>Update
test response with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-07856a39c8a5430d741bcf08861eb85bdd09b2785ce4296eaf3d2697bbc53855">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_anonymous_test.go</strong><dd><code>Update test
responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-c25dbd9375a284855b2297546ad1f6e2550bfaa189af9aea805d8a20c21fddea">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_email_password_test.go</strong><dd><code>Update
test responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-20169cf1b0f6c102c29b882d28234333096dd5fc226ad1a92119e00206e4c26e">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_idtoken_test.go</strong><dd><code>Update test
responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp_test.go</strong><dd><code>Update test
response with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-2f07c5c0613472bcfad7967a8116602ffa8f33856de94380d50ccdbd95bec206">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_otp_email_verify_test.go</strong><dd><code>Update
test response with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-df88ef70165a67033c322cc91cd5d0c28d7459f69c709ac9074fb8222e518a7f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_passwordless_sms_otp_test.go</strong><dd><code>Update
test responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-852ae47a5ab7ad9241dc132565e8935025c90bf54f776eefd92a35462d1ad94f">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_pat_test.go</strong><dd><code>Update test
responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-020127c3b0d584aa14d94f93ce33be359ce58e7fb9b893211d4edaaceedac9e9">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_webauthn_verify_test.go</strong><dd><code>Update
test responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-1c449231790f6e56e26d47fecb200b1f2b3585ea9f80ad19ab8f905b01094a46">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signout_test.go</strong><dd><code>Add comprehensive
tests for signout endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-d00ef8fa496c728003f75a5ea96da5ee58427883d433b923cc8550ad83788852">+240/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>post_signup_email_password_test.go</strong><dd><code>Update
test responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-c7050138b811ec2f854c0dfa34ac1eb9f03831c1f682e6a677dfe16943cb5f84">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signup_webauthn_verify_test.go</strong><dd><code>Update
test responses with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-c93cb267e3fcbec34fe2f8c5dbc204bb6d2cbc9fff58597ad761da5a8e661c3c">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_token_test.go</strong><dd><code>Update test responses
with ActiveMfaType field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-dfb4a72aeccf26b3cfb4f1a91a0d2807896febd4b602cfca4b751636befde18a">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_token_verify_test.go</strong><dd><code>Add tests for
token verification endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-62e46f99186e19026de69c5fc76018a1da786d42ec53789c62fb6f322b6efe30">+76/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>user.test.ts</strong><dd><code>Update test expectation for
unauthenticated user</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-81735490d16bd713d0cb1e56f6142829870fbc951a8fa53e70304f2dd6ad8567">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>CLAUDE.md</strong><dd><code>Add comprehensive Go migration
documentation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/653/files#diff-6ebdb617a8104a7756d0cf36578ab01103dc9f07e4dc6feb751296b9c402faf7">+415/-0</a>&nbsp;
</td>

</tr>
</table></details></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-06-25 14:32:18 +02:00
David Barroso
92b594c523 fix: simplify email extraction to just look for < > (#655)
### **PR Type**
Bug fix


___

### **Description**
- Simplify email extraction logic from regex to string operations

- Remove regex dependency for better performance

- Update test expectations for malformed email handling

- Add new test cases for hyphenated domains and names


___



### **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>email.go</strong><dd><code>Replace regex with string
operations for email extraction</code></dd></summary>
<hr>

go/notifications/email.go

<li>Replace regex-based email extraction with simple string operations
<br>using <code>strings.Index</code><br> <li> Remove <code>regexp</code>
import dependency<br> <li> Simplify logic to only extract emails
enclosed in angle brackets


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/655/files#diff-23fa6c5970f0d27bd2b007e64626e30c82dd1f5c19391dcbfe544e26f393ea86">+4/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>email_test.go</strong><dd><code>Update tests for
simplified email extraction logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/notifications/email_test.go

<li>Update expected results for malformed email test cases<br> <li>
Change behavior for strings without angle brackets to return original
<br>input<br> <li> Add two new test cases for hyphenated domains and
display names


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/655/files#diff-15b6541fe822c5bba389b86f6988a6ef20b0b694703889f84acf4d5013df7c18">+12/-2</a>&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-06-25 14:12:53 +02:00
dependabot[bot]
0b316c95bc chore: bump nixbuild/nix-quick-install-action from 30 to 31 (#652)
### **User description**
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 30 to 31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v31</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.25.5</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.12 -&gt; 2.24.14, 2.26.1 -&gt; 2.26.3
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.28.3, 2.29.0</p>
</li>
<li>
<p>Bump default Nix version: 2.24.12 -&gt; 2.29.0</p>
</li>
<li>
<p>Fix issue with 'experimental-features' setting getting overwritten
(<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>).</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v31</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.25.5</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.12 -&gt; 2.24.14, 2.26.1 -&gt; 2.26.3
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.28.3, 2.29.0</p>
</li>
<li>
<p>Bump default Nix version: 2.24.12 -&gt; 2.29.0</p>
</li>
<li>
<p>Fix issue with 'experimental-features' setting getting overwritten
(<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="889f3180bb"><code>889f318</code></a>
Release v31</li>
<li><a
href="09d596a493"><code>09d596a</code></a>
Fix workflow</li>
<li><a
href="ce8e5b9320"><code>ce8e5b9</code></a>
Document <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/45">#45</a></li>
<li><a
href="d9bcabc69f"><code>d9bcabc</code></a>
Avoid overwriting user-supplied experimental-feature setting. Fixes <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>.</li>
<li><a
href="9eb57d6652"><code>9eb57d6</code></a>
Remove unused file</li>
<li><a
href="b6ab472bc4"><code>b6ab472</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/67">#67</a>
from nixbuild/nix_2_29</li>
<li><a
href="255feab0a1"><code>255feab</code></a>
Add Nix 2.29. Remove deprecated version 2.25.</li>
<li><a
href="8505cd40ae"><code>8505cd4</code></a>
Update README and workflows for v30</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v30...v31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=30&new-version=31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Other


___

### **Description**
- Bump nixbuild/nix-quick-install-action from v30 to v31

- Update GitHub Actions dependency version

- Includes Nix version updates and bug fixes


___



### **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>gen_schedule_update_deps.yaml</strong><dd><code>Update
Nix installation action version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_schedule_update_deps.yaml

- Update nixbuild/nix-quick-install-action from v30 to v31


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/652/files#diff-ae003e22c1e5cbf186e1749d77dec35965e521d2583ba8cf45fcb1c8f300e177">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 08:57:37 +02:00
dependabot[bot]
75a508afe8 chore: bump nixbuild/nix-quick-install-action from 30 to 31 (#242)
### **User description**
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 30 to 31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v31</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.25.5</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.12 -&gt; 2.24.14, 2.26.1 -&gt; 2.26.3
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.28.3, 2.29.0</p>
</li>
<li>
<p>Bump default Nix version: 2.24.12 -&gt; 2.29.0</p>
</li>
<li>
<p>Fix issue with 'experimental-features' setting getting overwritten
(<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>).</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.29.0</li>
<li>2.28.3</li>
<li>2.26.3</li>
<li>2.24.14</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v31</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.25.5</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.12 -&gt; 2.24.14, 2.26.1 -&gt; 2.26.3
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.28.3, 2.29.0</p>
</li>
<li>
<p>Bump default Nix version: 2.24.12 -&gt; 2.29.0</p>
</li>
<li>
<p>Fix issue with 'experimental-features' setting getting overwritten
(<a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="889f3180bb"><code>889f318</code></a>
Release v31</li>
<li><a
href="09d596a493"><code>09d596a</code></a>
Fix workflow</li>
<li><a
href="ce8e5b9320"><code>ce8e5b9</code></a>
Document <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/45">#45</a></li>
<li><a
href="d9bcabc69f"><code>d9bcabc</code></a>
Avoid overwriting user-supplied experimental-feature setting. Fixes <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/66">#66</a>.</li>
<li><a
href="9eb57d6652"><code>9eb57d6</code></a>
Remove unused file</li>
<li><a
href="b6ab472bc4"><code>b6ab472</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/67">#67</a>
from nixbuild/nix_2_29</li>
<li><a
href="255feab0a1"><code>255feab</code></a>
Add Nix 2.29. Remove deprecated version 2.25.</li>
<li><a
href="8505cd40ae"><code>8505cd4</code></a>
Update README and workflows for v30</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v30...v31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=30&new-version=31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Other


___

### **Description**
- Bump nixbuild/nix-quick-install-action from v30 to v31

- Updates GitHub Actions dependency for Nix installation

- Includes newer Nix versions and bug fixes


___



### **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>gen_schedule_update_deps.yaml</strong><dd><code>Update
Nix installation action version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_schedule_update_deps.yaml

- Update nixbuild/nix-quick-install-action version from v30 to v31


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/242/files#diff-ae003e22c1e5cbf186e1749d77dec35965e521d2583ba8cf45fcb1c8f300e177">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 08:44:24 +02:00
dependabot[bot]
6f3778f18f chore: bump Codium-ai/pr-agent from 0.29 to 0.30 (#654)
### **User description**
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.29 to 0.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.30</h2>
<p>codiumai/pr-agent:0.30
codiumai/pr-agent:0.30-github_app
codiumai/pr-agent:0.30-bitbucket-app
codiumai/pr-agent:0.30-gitlab_webhook
codiumai/pr-agent:0.30-github_action
codiumai/pr-agent:0.30-azure_devops_webhook
codiumai/pr-agent:0.30-gitea-app</p>
<h2>What's Changed</h2>
<ul>
<li>Adding num_max_findings configuration parameter by <a
href="https://github.com/GuBee33"><code>@​GuBee33</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1797">qodo-ai/pr-agent#1797</a></li>
<li>docs: document how to auto-trigger /add_docs via pr_commands by <a
href="https://github.com/jmsb02"><code>@​jmsb02</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1795">qodo-ai/pr-agent#1795</a></li>
<li>Revise the review effort label text in the review document by <a
href="https://github.com/seohyun-lee"><code>@​seohyun-lee</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1799">qodo-ai/pr-agent#1799</a></li>
<li>Add incremental update to documentation by <a
href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1796">qodo-ai/pr-agent#1796</a></li>
<li><a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1657">#1657</a>
add gitea/forgejo support by <a
href="https://github.com/nicholasgribanov"><code>@​nicholasgribanov</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1787">qodo-ai/pr-agent#1787</a></li>
<li>Correct typos in documentation and log messages by <a
href="https://github.com/seohyun-lee"><code>@​seohyun-lee</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1798">qodo-ai/pr-agent#1798</a></li>
<li>fix: reorder exception handling in
<code>LiteLLMAIHandler.chat_completion()</code> by <a
href="https://github.com/KangmoonSeo"><code>@​KangmoonSeo</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1803">qodo-ai/pr-agent#1803</a></li>
<li>Update LICENSE by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1809">qodo-ai/pr-agent#1809</a></li>
<li>docs: include [aws] in .secrets.template by <a
href="https://github.com/darkdread"><code>@​darkdread</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1801">qodo-ai/pr-agent#1801</a></li>
<li>fix: exclude RateLimitError from <code>@retry</code> in
<code>AIHandler.chat_completion()</code> by <a
href="https://github.com/KangmoonSeo"><code>@​KangmoonSeo</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1808">qodo-ai/pr-agent#1808</a></li>
<li>Add unit tests for try_fix_yaml function by <a
href="https://github.com/jwsong98"><code>@​jwsong98</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1812">qodo-ai/pr-agent#1812</a></li>
<li>feat: add support for Claude 4 family by <a
href="https://github.com/hirobf10"><code>@​hirobf10</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1814">qodo-ai/pr-agent#1814</a></li>
<li>Add Grok-3 non-beta model IDs by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1817">qodo-ai/pr-agent#1817</a></li>
<li>Add Unit Tests and Improve Documentation for utils.py clip_tokens
Function by <a
href="https://github.com/TaskerJang"><code>@​TaskerJang</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1816">qodo-ai/pr-agent#1816</a></li>
<li>Refactor count_tokens method structure in token_handler.py for
better extensibility by <a
href="https://github.com/Kkan9ma"><code>@​Kkan9ma</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1805">qodo-ai/pr-agent#1805</a></li>
<li>Improve/describe tool documentation and make add_diagram feature
opt-in by default by <a
href="https://github.com/ssunbear"><code>@​ssunbear</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1824">qodo-ai/pr-agent#1824</a></li>
<li>fix: ensure proper formatting of changes_diagram in PR description
ou… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1827">qodo-ai/pr-agent#1827</a></li>
<li>fix(test_language_handler): Add edge case for files with unknown
extensions by <a
href="https://github.com/wonggamggik"><code>@​wonggamggik</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1818">qodo-ai/pr-agent#1818</a></li>
<li>Feature/test get max tokens by <a
href="https://github.com/wonggamggik"><code>@​wonggamggik</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1819">qodo-ai/pr-agent#1819</a></li>
<li>Complete Gemini 2.5 Flash model info by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1822">qodo-ai/pr-agent#1822</a></li>
<li>Add unit tests for fix_json_escape_char function by <a
href="https://github.com/idealHyun"><code>@​idealHyun</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1825">qodo-ai/pr-agent#1825</a></li>
<li>test: add tests for converting to markdown by <a
href="https://github.com/dst03106"><code>@​dst03106</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1829">qodo-ai/pr-agent#1829</a></li>
<li>docs: correct parameter name typo and update description by <a
href="https://github.com/isExample"><code>@​isExample</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1831">qodo-ai/pr-agent#1831</a></li>
<li>Refactor: Enhance AI Handler Robustness, Interface Compliance, and
Asynchronous Operations (Resolves <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1784">#1784</a>)
by <a href="https://github.com/Akileox"><code>@​Akileox</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1828">qodo-ai/pr-agent#1828</a></li>
<li>[Feature] - Gitea implement by <a
href="https://github.com/pinyoothotaboot"><code>@​pinyoothotaboot</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1811">qodo-ai/pr-agent#1811</a></li>
<li>docs: add dedicated &quot;Chat on code suggestions&quot; core
ability by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1835">qodo-ai/pr-agent#1835</a></li>
<li>docs: enhance review.md with ticket compliance labels and merge
block… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1837">qodo-ai/pr-agent#1837</a></li>
<li>docs: add Linear integration to ticket context fetching
documentation by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1838">qodo-ai/pr-agent#1838</a></li>
<li>Reorganize and Enhance Tools Documentation with Improved Navigation
and Consistency
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1840">qodo-ai/pr-agent#1840</a></li>
<li>feat: add AWS Secrets Manager Integration for Lambda deployments by
<a href="https://github.com/yamoyamoto"><code>@​yamoyamoto</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1839">qodo-ai/pr-agent#1839</a></li>
<li>docs: update trial usage information to reflect new quota-based
model by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1832">qodo-ai/pr-agent#1832</a></li>
<li>docs: add global hierarchical best practices system by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1844">qodo-ai/pr-agent#1844</a></li>
<li>Hl/multi jira server docs by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1845">qodo-ai/pr-agent#1845</a></li>
<li>Update atlassian-connect.json by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1850">qodo-ai/pr-agent#1850</a></li>
<li>Add Google Gemini 2.5 Pro Preview 06-05 by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1853">qodo-ai/pr-agent#1853</a></li>
<li>Fix gitea get file content error by <a
href="https://github.com/SCREEN88"><code>@​SCREEN88</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1852">qodo-ai/pr-agent#1852</a></li>
<li>chore: add APAC region endpoints for Bedrock Anthropic Claude models
by <a href="https://github.com/kebhr"><code>@​kebhr</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1851">qodo-ai/pr-agent#1851</a></li>
<li>docs: update PR benchmark to ranking-based methodology with expanded
… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1866">qodo-ai/pr-agent#1866</a></li>
<li>Add GitLab support for CHANGELOG.md by <a
href="https://github.com/cesdperez"><code>@​cesdperez</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1856">qodo-ai/pr-agent#1856</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb4cdbb115"><code>eb4cdbb</code></a>
fix: remove branch parameter from get_content_of_file call in bitbucket
serve...</li>
<li><a
href="7f54b14b4d"><code>7f54b14</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1874">#1874</a>
from yoohya/feat/support-gitlab-lambda-webhooks</li>
<li><a
href="938ab9a139"><code>938ab9a</code></a>
fix: remove redundant word 'possible' from security concerns field
description</li>
<li><a
href="75bde39b03"><code>75bde39</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1888">#1888</a>
from qodo-ai/tr/simplify_toDo</li>
<li><a
href="ee36c0208c"><code>ee36c02</code></a>
Update pr_agent/settings/pr_reviewer_prompts.toml</li>
<li><a
href="7c02678ba5"><code>7c02678</code></a>
refactor: extract TODO formatting functions and simplify data
structure</li>
<li><a
href="235df737d0"><code>235df73</code></a>
docs: update Docker image tags</li>
<li><a
href="37ef4bad8f"><code>37ef4ba</code></a>
docs: add bullet point formatting instruction to PR description
prompts</li>
<li><a
href="ab7e0d9141"><code>ab7e0d9</code></a>
refactor: split serverless handlers into dedicated GitHub and GitLab
Lambda e...</li>
<li><a
href="7db4d97fc2"><code>7db4d97</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1880">#1880</a>
from alessio-locatelli/fix_yes_no</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.29...v0.30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.29&new-version=0.30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Other


___

### **Description**
- Bump Codium-ai/pr-agent GitHub Action from v0.29 to v0.30

- Update dependency version in workflow configuration


___



### **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>gen_ai_review.yaml</strong><dd><code>Update pr-agent
action version</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;
</dd></summary>
<hr>

.github/workflows/gen_ai_review.yaml

- Updated Codium-ai/pr-agent action version from v0.29 to v0.30


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/654/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 08:38:41 +02:00
dependabot[bot]
a7353a83fd chore: bump Codium-ai/pr-agent from 0.29 to 0.30 (#243)
### **User description**
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.29 to 0.30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.30</h2>
<p>codiumai/pr-agent:0.30
codiumai/pr-agent:0.30-github_app
codiumai/pr-agent:0.30-bitbucket-app
codiumai/pr-agent:0.30-gitlab_webhook
codiumai/pr-agent:0.30-github_action
codiumai/pr-agent:0.30-azure_devops_webhook
codiumai/pr-agent:0.30-gitea-app</p>
<h2>What's Changed</h2>
<ul>
<li>Adding num_max_findings configuration parameter by <a
href="https://github.com/GuBee33"><code>@​GuBee33</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1797">qodo-ai/pr-agent#1797</a></li>
<li>docs: document how to auto-trigger /add_docs via pr_commands by <a
href="https://github.com/jmsb02"><code>@​jmsb02</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1795">qodo-ai/pr-agent#1795</a></li>
<li>Revise the review effort label text in the review document by <a
href="https://github.com/seohyun-lee"><code>@​seohyun-lee</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1799">qodo-ai/pr-agent#1799</a></li>
<li>Add incremental update to documentation by <a
href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1796">qodo-ai/pr-agent#1796</a></li>
<li><a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1657">#1657</a>
add gitea/forgejo support by <a
href="https://github.com/nicholasgribanov"><code>@​nicholasgribanov</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1787">qodo-ai/pr-agent#1787</a></li>
<li>Correct typos in documentation and log messages by <a
href="https://github.com/seohyun-lee"><code>@​seohyun-lee</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1798">qodo-ai/pr-agent#1798</a></li>
<li>fix: reorder exception handling in
<code>LiteLLMAIHandler.chat_completion()</code> by <a
href="https://github.com/KangmoonSeo"><code>@​KangmoonSeo</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1803">qodo-ai/pr-agent#1803</a></li>
<li>Update LICENSE by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1809">qodo-ai/pr-agent#1809</a></li>
<li>docs: include [aws] in .secrets.template by <a
href="https://github.com/darkdread"><code>@​darkdread</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1801">qodo-ai/pr-agent#1801</a></li>
<li>fix: exclude RateLimitError from <code>@retry</code> in
<code>AIHandler.chat_completion()</code> by <a
href="https://github.com/KangmoonSeo"><code>@​KangmoonSeo</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1808">qodo-ai/pr-agent#1808</a></li>
<li>Add unit tests for try_fix_yaml function by <a
href="https://github.com/jwsong98"><code>@​jwsong98</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1812">qodo-ai/pr-agent#1812</a></li>
<li>feat: add support for Claude 4 family by <a
href="https://github.com/hirobf10"><code>@​hirobf10</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1814">qodo-ai/pr-agent#1814</a></li>
<li>Add Grok-3 non-beta model IDs by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1817">qodo-ai/pr-agent#1817</a></li>
<li>Add Unit Tests and Improve Documentation for utils.py clip_tokens
Function by <a
href="https://github.com/TaskerJang"><code>@​TaskerJang</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1816">qodo-ai/pr-agent#1816</a></li>
<li>Refactor count_tokens method structure in token_handler.py for
better extensibility by <a
href="https://github.com/Kkan9ma"><code>@​Kkan9ma</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1805">qodo-ai/pr-agent#1805</a></li>
<li>Improve/describe tool documentation and make add_diagram feature
opt-in by default by <a
href="https://github.com/ssunbear"><code>@​ssunbear</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1824">qodo-ai/pr-agent#1824</a></li>
<li>fix: ensure proper formatting of changes_diagram in PR description
ou… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1827">qodo-ai/pr-agent#1827</a></li>
<li>fix(test_language_handler): Add edge case for files with unknown
extensions by <a
href="https://github.com/wonggamggik"><code>@​wonggamggik</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1818">qodo-ai/pr-agent#1818</a></li>
<li>Feature/test get max tokens by <a
href="https://github.com/wonggamggik"><code>@​wonggamggik</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1819">qodo-ai/pr-agent#1819</a></li>
<li>Complete Gemini 2.5 Flash model info by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1822">qodo-ai/pr-agent#1822</a></li>
<li>Add unit tests for fix_json_escape_char function by <a
href="https://github.com/idealHyun"><code>@​idealHyun</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1825">qodo-ai/pr-agent#1825</a></li>
<li>test: add tests for converting to markdown by <a
href="https://github.com/dst03106"><code>@​dst03106</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1829">qodo-ai/pr-agent#1829</a></li>
<li>docs: correct parameter name typo and update description by <a
href="https://github.com/isExample"><code>@​isExample</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1831">qodo-ai/pr-agent#1831</a></li>
<li>Refactor: Enhance AI Handler Robustness, Interface Compliance, and
Asynchronous Operations (Resolves <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1784">#1784</a>)
by <a href="https://github.com/Akileox"><code>@​Akileox</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1828">qodo-ai/pr-agent#1828</a></li>
<li>[Feature] - Gitea implement by <a
href="https://github.com/pinyoothotaboot"><code>@​pinyoothotaboot</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1811">qodo-ai/pr-agent#1811</a></li>
<li>docs: add dedicated &quot;Chat on code suggestions&quot; core
ability by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1835">qodo-ai/pr-agent#1835</a></li>
<li>docs: enhance review.md with ticket compliance labels and merge
block… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1837">qodo-ai/pr-agent#1837</a></li>
<li>docs: add Linear integration to ticket context fetching
documentation by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1838">qodo-ai/pr-agent#1838</a></li>
<li>Reorganize and Enhance Tools Documentation with Improved Navigation
and Consistency
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1840">qodo-ai/pr-agent#1840</a></li>
<li>feat: add AWS Secrets Manager Integration for Lambda deployments by
<a href="https://github.com/yamoyamoto"><code>@​yamoyamoto</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1839">qodo-ai/pr-agent#1839</a></li>
<li>docs: update trial usage information to reflect new quota-based
model by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1832">qodo-ai/pr-agent#1832</a></li>
<li>docs: add global hierarchical best practices system by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1844">qodo-ai/pr-agent#1844</a></li>
<li>Hl/multi jira server docs by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1845">qodo-ai/pr-agent#1845</a></li>
<li>Update atlassian-connect.json by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1850">qodo-ai/pr-agent#1850</a></li>
<li>Add Google Gemini 2.5 Pro Preview 06-05 by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1853">qodo-ai/pr-agent#1853</a></li>
<li>Fix gitea get file content error by <a
href="https://github.com/SCREEN88"><code>@​SCREEN88</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1852">qodo-ai/pr-agent#1852</a></li>
<li>chore: add APAC region endpoints for Bedrock Anthropic Claude models
by <a href="https://github.com/kebhr"><code>@​kebhr</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1851">qodo-ai/pr-agent#1851</a></li>
<li>docs: update PR benchmark to ranking-based methodology with expanded
… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1866">qodo-ai/pr-agent#1866</a></li>
<li>Add GitLab support for CHANGELOG.md by <a
href="https://github.com/cesdperez"><code>@​cesdperez</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1856">qodo-ai/pr-agent#1856</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="eb4cdbb115"><code>eb4cdbb</code></a>
fix: remove branch parameter from get_content_of_file call in bitbucket
serve...</li>
<li><a
href="7f54b14b4d"><code>7f54b14</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1874">#1874</a>
from yoohya/feat/support-gitlab-lambda-webhooks</li>
<li><a
href="938ab9a139"><code>938ab9a</code></a>
fix: remove redundant word 'possible' from security concerns field
description</li>
<li><a
href="75bde39b03"><code>75bde39</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1888">#1888</a>
from qodo-ai/tr/simplify_toDo</li>
<li><a
href="ee36c0208c"><code>ee36c02</code></a>
Update pr_agent/settings/pr_reviewer_prompts.toml</li>
<li><a
href="7c02678ba5"><code>7c02678</code></a>
refactor: extract TODO formatting functions and simplify data
structure</li>
<li><a
href="235df737d0"><code>235df73</code></a>
docs: update Docker image tags</li>
<li><a
href="37ef4bad8f"><code>37ef4ba</code></a>
docs: add bullet point formatting instruction to PR description
prompts</li>
<li><a
href="ab7e0d9141"><code>ab7e0d9</code></a>
refactor: split serverless handlers into dedicated GitHub and GitLab
Lambda e...</li>
<li><a
href="7db4d97fc2"><code>7db4d97</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1880">#1880</a>
from alessio-locatelli/fix_yes_no</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.29...v0.30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.29&new-version=0.30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Other


___

### **Description**
- Bump Codium-ai/pr-agent GitHub Action from v0.29 to v0.30

- Update dependency version in workflow configuration

- Maintain existing workflow functionality and permissions


___



### **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>gen_ai_review.yaml</strong><dd><code>Update pr-agent
action version</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;
</dd></summary>
<hr>

.github/workflows/gen_ai_review.yaml

- Updated Codium-ai/pr-agent action version from v0.29 to v0.30


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/243/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 08:38:18 +02:00
robertkasza
fd3b5c77e4 fix (dashboard): Limit new project name to a max of 32 chars (#3371)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Limit new project name to 32 characters in E2E tests

- Update project creation test in upgrade-project.test.ts

- Add changeset for @nhost/dashboard patch


___



### **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>upgrade-project.test.ts</strong><dd><code>Limit project
name length in E2E test</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/e2e/upgrade-project/upgrade-project.test.ts

<li>Modify project name generation to limit to 32 characters<br> <li>
Use <code>slice(0, 32)</code> on faker-generated project name


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>weak-bottles-stare.md</strong><dd><code>Add changeset
for project name length fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/weak-bottles-stare.md

<li>Add new changeset file for @nhost/dashboard patch<br> <li> Document
fix for limiting project name to 32 characters


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3371/files#diff-352316104f52e31fc130d1016f300d58c243319c6e6e434c9bc6912402117d6a">+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-06-18 15:50:56 +02:00
robertkasza
9ed8ce8a5e fix (dashboard): request new mfa ticket after error when signing in (#3369)
### **PR Type**
Bug fix


___

### **Description**
- Request new MFA ticket after invalid TOTP

- Improve error handling in MFA flow

- Add comprehensive tests for MfaOtpForm

- Refactor SignInWithEmailAndPassword component


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>MfaOtpForm.test.tsx</strong><dd><code>Add comprehensive
tests for MfaOtpForm component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-0a0a9d4aa607a60fb4f38712686101d583426536ff6c177ea625cf8ce1946971">+519/-0</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>MfaOtpForm.tsx</strong><dd><code>Implement MFA ticket
renewal and improve error handling</code>&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-88ee3610a0658d5eead85db025a5e91e74a4d2f2a836adf7eb44ff80888a613b">+39/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>MfaSignInOtpForm.tsx</strong><dd><code>Add
requestNewMfaTicket prop to MfaSignInOtpForm</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-91eba232beb0543b1e972ed9a21a0be797ed94b720487834bb3316a5dbd732f5">+7/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SignInWithEmailAndPassword.tsx</strong><dd><code>Implement
requestNewMfaTicket function and pass to
MfaSignInOtpForm</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-a2b70644663baf4f6f2cdffd846d4d743a5ca1f2a64c4b278b6f04c6c5c92161">+20/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useOnSignInWithEmailAndPasswordHandler.ts</strong><dd><code>Add
emailPasswordRef to store credentials for MFA renewal</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-1a253bfc02c3267ab1c6b58c07aa06142b7e711d613b672c8420ff2861b12d27">+19/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useRequestNewMfaTicket.ts</strong><dd><code>Create new hook
for requesting new MFA ticket</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-64a3a91cf75c8faf5bf6a9fdd23978659d68888744a92f82602b1a2f7290c1f6">+28/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>email.tsx</strong><dd><code>Fix page title for sign-in
page</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-b5d7db4460066bc114cb766771612d6f908bd6e440f40de98e4ac311a26b50cd">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>lovely-days-whisper.md</strong><dd><code>Add changeset for
MFA ticket renewal fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3369/files#diff-1d7e7e258210abb910bb9c392731a3195ffca03024082c4b357e61c475dd3e3f">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-06-18 14:02:18 +02:00
David Barroso
d34d23aa69 feat: custom-claims: allow filtered jsonpath (#651)
### **User description**
for instance, something like:

```toml
[[auth.session.accessToken.customClaims]]
key = 'department-manager'
value = 'departments[?(@.role == "manager")].id'

[[auth.session.accessToken.customClaims]]
key = 'department-member'
value = 'departments[?(@.role == "member")].id'
```


___

### **PR Type**
Enhancement


___

### **Description**
• Add support for JSONPath filter expressions in custom claims
• Implement smart path splitting to handle bracket notation
• Extract filter fields for proper GraphQL query generation
• Refactor map operations using Go's built-in maps package


___



### **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>custom_claims.go</strong><dd><code>Implement JSONPath
filter expression support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/custom_claims.go

• Add <code>smartSplit</code> function to handle JSONPath expressions
with brackets<br> <br>• Implement <code>extractFilterFields</code> to
parse filter expressions like <br><code>[?(@.field ==
'value')]</code><br> • Update <code>IsArrary</code> method to detect
filter <br>expressions<br> • Refactor map copying using
<code>maps.Copy</code> instead of manual <br>iteration


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/651/files#diff-c548bbd2d2f0049972a2e9f4109812ad085354f2ad80f33d5faffb7fbbbcf71a">+112/-7</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>custom_claims_test.go</strong><dd><code>Add tests for
JSONPath filter functionality</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/custom_claims_test.go

• Add test data with filterable array structure<br> • Include test case
<br>for filtered JSONPath expression <code>m.d[?(@.v ==
'a')].id</code><br> • Update <br>expected GraphQL query to include
filter field dependencies<br> • Add <br>expected filtered results
validation


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/651/files#diff-fe8259aacd678b29540bb6ae15315e7465f5f12299e27b68bdfb0cc6206f7bd1">+20/-1</a>&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-06-17 19:28:53 +02:00
David Barroso
3f8cafe6d6 feat: migrate passwordless sms endpoints to go (#650) 2025-06-17 13:47:57 +02:00
Ivan Kuznetsov
e7762cb2b5 fix (examples/nextjs-server-components): added missing await (#3364) 2025-06-17 11:53:38 +02:00
David Barroso
35fb1197d0 feat: migrate remaining webauthn endpoints to go (#647) 2025-06-13 12:35:53 +02:00
gssakash-nhost
e353d99de8 feat (examples/react-apollo): add more social providers (#3339)
### **User description**
___

### **PR Type**
Enhancement


___

### **Description**
- **Added OAuth Integrations**  
Enabled OAuth for Spotify, Twitch, GitLab, Bitbucket, WorkOS, Discord,
AzureAD, Facebook, Strava, Windows Live, and Twitter.
- **Enhanced UI**  
  Added login buttons for each provider.
- **Updated Configuration**  
Configured OAuth settings in `nhost.toml` and updated the authentication
version as necessary.
- **Included Example Credentials**  
  Added client credentials to `.secrets.example` for easy setup.

___



### **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>oauth-links.tsx</strong><dd><code>Add Spotify OAuth
button to login options</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

examples/react-apollo/src/components/auth/oauth-links.tsx

<li>Imported Spotify icon from react-simple-icons<br> <li> Added Spotify
to useProviderLink hook<br> <li> Implemented Spotify login button with
styling


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>nhost.toml</strong><dd><code>Enable Spotify OAuth in
e2e test project</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/e2e/e2e-tests-project/nhost/nhost.toml

- Enabled Spotify OAuth method


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>.secrets.example</strong><dd><code>Add Spotify
credentials to secrets example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

examples/react-apollo/.secrets.example

- Added placeholders for Spotify client ID and secret


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>nhost.toml</strong><dd><code>Configure Spotify OAuth in
example project</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

examples/react-apollo/nhost/nhost.toml

<li>Enabled Spotify OAuth method<br> <li> Added configuration for
Spotify client ID and secret


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3339/files#diff-268d6c8dddd6990d60d62c1c923955c4e0e7549a80f0f5856192f889378416a0">+3/-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>

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-06-13 11:06:43 +02:00
David Barroso
c4d289a4d5 chore (docs): added limits section (#3367)
### **PR Type**
Documentation, Enhancement


___

### **Description**
- Added new 'Limits' section to Functions overview

- Detailed function execution timeout limits by project tier

- Included custom timeout option for Enterprise tier


___



### **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>overview.mdx</strong><dd><code>Add Function Execution
Timeout Limits Section</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/products/functions/overview.mdx

<li>Added new 'Limits' section after deployment information<br> <li>
Listed function execution timeout limits for different project tiers<br>
<li> Included Starter, Pro, Teams, and Enterprise tier limits<br> <li>
Mentioned custom timeout values for Enterprise tier


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3367/files#diff-c1e4e354976e7a602620f2540bb357b7d4d73853f8310342a75e1e14d4fd35f3">+9/-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-06-12 14:24:32 +02:00
David Barroso
3643bec04f feat: migrate social providers to go (#625) 2025-06-11 13:21:02 +02:00
github-actions[bot]
e2065e22df chore: update versions (#3360)
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.32.0

### Minor Changes

-   736862c: fix: update link to base directory docs in git settings
-   ea99fb3: chore: dashboard: improve messaging when git connected

### Patch Changes

-   d738884: chore (dashboard): Add link about antivirus integration

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-10 14:17:38 +02:00
robertkasza
d738884d7d chore (dashboard): Add link about antivirus integration (#3363)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Add antivirus integration documentation link

- Update HasuraStorageAVSettings component

- Create changeset for dashboard patch


___



### **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>HasuraStorageAVSettings.tsx</strong><dd><code>Add
antivirus documentation link to settings component</code>&nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/storage/settings/components/StorageAVSettings/HasuraStorageAVSettings.tsx

- Add `docsLink` prop to component with antivirus documentation URL


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>pink-grapes-cheat.md</strong><dd><code>Add changeset
for dashboard antivirus link update</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/pink-grapes-cheat.md

<li>Create new changeset file for dashboard patch<br> <li> Add
description for antivirus integration link addition


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3363/files#diff-08b9cb5cc1ddca46a96721dbb3e6982d1833985dc4342ec17b9c1e7dfefa7cb4">+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-06-10 13:46:09 +02:00
robertkasza
b50404566f feat (dashboard): Add logs view to deployment page (#3352)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Add logs view to deployment page

- Refactor logs components for reusability

- Improve log filtering and service selection

- Update GraphQL queries and fragments


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>22
files</summary><table>
<tr>
<td><strong>LogsRegexFilter.tsx</strong><dd><code>Add reusable
LogsRegexFilter component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-349fe23e29895116a6e03cd9277c455860af99f3690cc267b2cc7a07628c2530">+87/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export LogsRegexFilter
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-7fa93132c67731a94b80233a459cab4e83f6c9f3f5adaa21661876bc4c4240bd">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>LogsServiceFilter.tsx</strong><dd><code>Add reusable
LogsServiceFilter component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-a590a7298a9f040df9f26c4eb37d10fc36f47c32996f71aec47796f08c44e892">+69/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export LogsServiceFilter
component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-e75bdc4d69b5725a63a6867b58a41fe4a9892d20c528f91382342959954e6ec7">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentDetails.tsx</strong><dd><code>Create
DeploymentDetails component with logs view</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-e95736b80d6545cd9bab82a81263adef8e9c39f8428eae50420e4b65339b774b">+161/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DeploymentInfo.tsx</strong><dd><code>Add DeploymentInfo
component for log timestamps</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-37a0e29e73146c3434fe95b0aa93b93f51db32211b2f2646e7248f7ac2dce1a6">+38/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentServiceLogs.tsx</strong><dd><code>Implement
DeploymentServiceLogs component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-333a9783713e9a4bad1b5327e117cbe69148091abe8b9038d36132b5f4635bbe">+59/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentServiceLogsHeader.tsx</strong><dd><code>Create
DeploymentServiceLogsHeader component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-4f102c06ed32bb3d8245e415e76b0b14d2d4ae3abca6e234edf69278325c7a95">+81/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.tsx</strong><dd><code>Export DeploymentServiceLogs
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-acd5fadae2f4f5f8a9de9717237d93ada3da2c3502bda78cfab123b9b8b4e8f3">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export useDeployment
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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-d45a44082ae4d2d5148c908d077ff69b69cf6ebcd8389e21f5381842cd1896f5">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useDeployment.ts</strong><dd><code>Implement useDeployment
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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-e733d29eeab1252ca05a48aa009938205b5f9b0b5e3f90535b6159c1e7ec9137">+59/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export useProjectLogs
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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-ae67977c734fbd0f10114658db5b715c09eb8cfe5ae720a96ae7692905e9071e">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectLogs.ts</strong><dd><code>Implement useProjectLogs
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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-10efc67700b3f024dd03442eacd339802e951696d04caa76bd5a864bd5c7c83f">+122/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>LogsBody.tsx</strong><dd><code>Update LogsBody
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-b628e511a7fb9b237ac691b27ab9585eed0d0803144cde66c3af7fa6f9a2dc40">+49/-31</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>LogsHeader.tsx</strong><dd><code>Refactor LogsHeader
component</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-ebb3285aa776c9c5ea8b72672c4aafd55994c6c694998bbf56ca9c56d1e77664">+12/-125</a></td>

</tr>

<tr>
<td><strong>LogsServiceFilter.tsx</strong><dd><code>Remove
LogsServiceFilter component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-52634b3870eb08646192600c3ec6bb2737750327dcfa5c08435d99a108fb057c">+0/-29</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>LogsRangeSelector.tsx</strong><dd><code>Update
LogsRangeSelector component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-46dd7c795a79e4b443213ed10089651423d13e5c776ca72e3a95ae5e0f7f63c8">+14/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>services.ts</strong><dd><code>Add custom templates fetcher
service</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-8fcdaed33322718091b613ae22c65cc3eb61972904b5af46866b160c9bbbe48c">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>[deploymentId].tsx</strong><dd><code>Update deployment
details page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-fbf95e7970ecb8157795fe4d1803c6913b1ba78183fa8a9b0ca9b9e4e9eccba2">+3/-144</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>logs.tsx</strong><dd><code>Refactor logs page to use new
hooks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-77489a68a7526d74f06d59019ad68c44728b7620637308d70fba38d6649b73fa">+9/-119</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>graphql.ts</strong><dd><code>Update generated GraphQL
types</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+75/-23</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>deployments.graphql</strong><dd><code>Update GraphQL queries
and fragments</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-c8c4668b1999c73e78eb706631ce9d0e0e41debf66e616350436af4ae3095b76">+31/-22</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>useDeployment.test.ts</strong><dd><code>Add tests for
useDeployment 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; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-37c7c86c6c93931c8794f241db0605267d1a051786972c1ab763ca0fe94f2b2b">+183/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>updateQuery.test.ts</strong><dd><code>Add tests for
updateQuery function</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-9eeaaad41f9097bab3be3769f17e4de74c642d5a2313899df3663e1bd3856b30">+324/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useProjectLogs.test.ts</strong><dd><code>Add tests for
useProjectLogs 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; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3352/files#diff-13d900aa08d06962a09628136b893801ad62a96c3ff89d380c5c4b7ae92d891e">+328/-0</a>&nbsp;
</td>

</tr>
</table></details></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-06-10 12:01:45 +02:00
Emory Mercera
8caf3daa54 Improve sentence flow of paragraph. (#3359)
Improve sentence flow of paragraph.
2025-06-10 11:08:27 +02:00
Calvin
8a07613cbe fix(examples/docker-compose): fix postgres persistent data storage path (#3346) 2025-06-10 11:08:21 +02:00
David BM
736862c9cc fix (dashboard): update link to base directory docs in git settings (#3358)
### **PR Type**
Bug fix


___

### **Description**
- Update link to base directory docs in git settings

- Correct URL for base directory documentation


___



### **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>BaseDirectorySettings.tsx</strong><dd><code>Update Base
Directory Documentation Link</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/git/settings/components/BaseDirectorySettings/BaseDirectorySettings.tsx

<li>Updated <code>docsLink</code> prop with correct URL for base
directory <br>documentation


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>rich-cups-nail.md</strong><dd><code>Add Changeset for
Documentation Link Update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/rich-cups-nail.md

<li>Added changeset file for minor version bump<br> <li> Described fix
for updating base directory docs link


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3358/files#diff-d085c64fa4e5869bd8d8aa20ef902840240daf6463c463f5a2ae9001932e961b">+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-06-06 16:12:41 +02:00
Nuno Pato
ea99fb31d7 chore: dashboard: improve messaging then git connected (#3348)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Improved GitHub connection messaging in SettingsLayout

- Updated DataBrowserSidebar for GitHub-connected projects

- Added 'graphite' to READ_ONLY_SCHEMAS list

- Created changeset for dashboard version bump


___



### **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>SettingsLayout.tsx</strong><dd><code>Redesign GitHub
connection alert in SettingsLayout</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/features/orgs/layout/SettingsLayout/SettingsLayout.tsx

<li>Redesigned GitHub connection alert<br> <li> Changed alert severity
from warning to info<br> <li> Improved text content and styling<br> <li>
Added link to configuration overlays documentation


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3348/files#diff-aa21cda513a125d8cefc5e7b5e1c755128aa904657350abf0ce1cde21e27ca75">+36/-30</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DataBrowserSidebar.tsx</strong><dd><code>Update GitHub
connection message in DataBrowserSidebar</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>


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

<li>Updated GitHub connection message in DataBrowserSidebar<br> <li>
Simplified text and added InfoIcon<br> <li> Improved layout and styling
of the message


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>common.ts</strong><dd><code>Add 'graphite' to
READ_ONLY_SCHEMAS constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/utils/constants/common/common.ts

- Added 'graphite' to READ_ONLY_SCHEMAS list


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>rich-pillows-teach.md</strong><dd><code>Add changeset
for dashboard version bump</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.changeset/rich-pillows-teach.md

<li>Created changeset file for minor version bump<br> <li> Added
description of changes for @nhost/dashboard


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3348/files#diff-80c4d9304d4ac2cca6acd40a4909dd85be2d333b64c3a8a25d84bfa6201d9122">+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>

---------

Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
2025-06-05 21:01:23 +00:00
github-actions[bot]
70433187cc chore: update versions (#3355)
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-auth-js@2.12.0

### Minor Changes

-   39b10a2: feat (dashboard): Add multi-factor authentication

## @nhost/react@3.11.0

### Minor Changes

-   39b10a2: feat (dashboard): Add multi-factor authentication
-   4b84780: feat (dashboard): Add Webauthn to dashboard

### Patch Changes

-   @nhost/nhost-js@3.2.9

## @nhost/apollo@8.0.9

### Patch Changes

-   @nhost/nhost-js@3.2.9

## @nhost/react-apollo@18.0.0

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/apollo@8.0.9

## @nhost/react-urql@15.0.0

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0

## @nhost/nextjs@2.2.8

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0

## @nhost/nhost-js@3.2.9

### Patch Changes

-   Updated dependencies [39b10a2]
    -   @nhost/hasura-auth-js@2.12.0

## @nhost/vue@2.9.6

### Patch Changes

-   @nhost/nhost-js@3.2.9

## @nhost/dashboard@2.31.0

### Minor Changes

-   39b10a2: feat (dashboard): Add multi-factor authentication
-   4b84780: feat (dashboard): Add Webauthn to dashboard

### Patch Changes

-   61eb6cd: fix (dashboard): Fix update project e2e test
    -   @nhost/react-apollo@18.0.0
    -   @nhost/nextjs@2.2.8

## @nhost-examples/cli@0.3.22

### Patch Changes

-   @nhost/nhost-js@3.2.9

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/react-apollo@18.0.0

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/react-urql@15.0.0

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

### Patch Changes

-   @nhost/nhost-js@3.2.9

## @nhost-examples/nextjs@0.4.8

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/react-apollo@18.0.0
    -   @nhost/nextjs@2.2.8

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

### Patch Changes

-   @nhost/nhost-js@3.2.9

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

### Patch Changes

-   @nhost/nhost-js@3.2.9

## @nhost-examples/sveltekit@0.8.1

### Patch Changes

-   @nhost/nhost-js@3.2.9

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/react-apollo@18.0.0

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0

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

### Patch Changes

-   Updated dependencies [39b10a2]
-   Updated dependencies [4b84780]
    -   @nhost/react@3.11.0
    -   @nhost/react-apollo@18.0.0

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

### Patch Changes

-   @nhost/nhost-js@3.2.9
-   @nhost/apollo@8.0.9
-   @nhost/vue@2.9.6

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

### Patch Changes

-   @nhost/apollo@8.0.9
-   @nhost/vue@2.9.6

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-05 12:39:48 +02:00
robertkasza
39b10a2e9f feat (dashboard): Add mfa (#3342)
### **PR Type**
Enhancement


___

### **Description**
- Add multi-factor authentication (MFA) to dashboard

- Implement MFA OTP form and QR code generation

- Create MFA settings and activation components

- Update sign-in process to support MFA


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19
files</summary><table>
<tr>
<td><strong>MfaOtpForm.tsx</strong><dd><code>Create reusable MFA OTP
form component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-88ee3610a0658d5eead85db025a5e91e74a4d2f2a836adf7eb44ff80888a613b">+61/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export MfaOtpForm
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-9c1deb50c3a92ca5494be705635984a97e1b41b07cd0847168a4eeddf0e375d0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>AccountMfaSettings.tsx</strong><dd><code>Implement MFA
settings component</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-4eb33e0f23780eaf93fd7d86850b263d83b05dc2d7a3f6ed9e30d1ca811f17af">+32/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>GenerateMfaQRCodeButton.tsx</strong><dd><code>Create button
to generate MFA QR code</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-7310648a5e879bb76ba6c3136fe555ed3bbdacddc33eef4ce8fc9c21a547ec82">+50/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MfaQRCode.tsx</strong><dd><code>Implement MFA QR code
generation component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-0c60d61f12b47e421c67c389c66399da76af4b32241610fe94c6635353e57da2">+49/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useActivateMfa.ts</strong><dd><code>Create hook for MFA
activation</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-0ae70fc9df5a3a6828f7a266db8036107ce9ea705cd318d3a1c4b7304d8522ba">+46/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useMfaEnabled.ts</strong><dd><code>Create hook to check MFA
status</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-31d2af339a8dd32beff8cce79962fa0dd23b6c89687b21aa75663ebeccb0b154">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export AccountMfaSettings
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-8c530fc016dd3569f2b7ec7e9085b99c99922ed077357bec562b8c9acaead24a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>SecurityKeyList.tsx</strong><dd><code>Update import path for
useGetSecurityKeys</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-966a157d381be33bc876e76b28f804e80cae6edb1aa088e78f883063966be3ba">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useOnAddNewSecurityKeyHandler.ts</strong><dd><code>Update
import paths for hooks</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-3514a6d1514269a83f37fc25e9cb24add9d5d74f9cf3341293c0e0f2a4c2e286">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useRemoveSecurityKey.ts</strong><dd><code>Update import
paths for hooks</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-5683e00a14f39018d8fe58a3116c2a8ea6d2f2a83abb2177bbf0ee8ddf0f97b5">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useElevatedPermissions.ts</strong><dd><code>Create hook for
elevated permissions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-c1e4f573300c771149cc2e59918c9acf2ae5f8a6680800a899707c70800ba144">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useGetSecurityKeys.ts</strong><dd><code>Create hook to fetch
security keys</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-1f9fed870cab61f15e304342e4913edab0f5537eeb6230070de4b4f7173fa138">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>MfaSignInOtpForm.tsx</strong><dd><code>Create MFA sign-in
OTP form component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-91eba232beb0543b1e972ed9a21a0be797ed94b720487834bb3316a5dbd732f5">+26/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>SignInWithEmailAndPassword.tsx</strong><dd><code>Update
sign-in component to support MFA</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-a2b70644663baf4f6f2cdffd846d4d743a5ca1f2a64c4b278b6f04c6c5c92161">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>SignInWithEmailAndPasswordForm.tsx</strong><dd><code>Implement
sign-in form with MFA support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-a07fd6bd20c97d0c9c875e690cd3a80068fc58f74d3579feb210e189d32f5031">+91/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useOnSignInWithEmailAndPasswordHandler.ts</strong><dd><code>Create
hook for sign-in with MFA</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-1a253bfc02c3267ab1c6b58c07aa06142b7e711d613b672c8420ff2861b12d27">+56/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useSignInWithEmailAndPasswordForm.ts</strong><dd><code>Create
hook for sign-in form validation</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-b908e474c0fb54db9c922d9fef7cf1ef6c4ccb0dd7519da0c45a18e5bb26ed40">+30/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export SignInWithEmailAndPassword
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-d3fd195b5ca8ece9eac446129e8501793e5bd6e5c167ed36c8c6d0adc1723fda">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>8 files</summary><table>
<tr>
  <td><strong>mighty-onions-crash.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-834d585225de297c20c9e325a231c6d3a72227fc1d8cc84b0c1f8fe0dbb1c523">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getActiveMfaType.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-ac5aa6c409363b550d15aace147448c5e267a3cf0fb7f86faf5060f8cbe35302">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-61a48d15d3a2e29160a6d91cd01501ac94cf9f70995c6a84fbb6d6e2c2d4fca1">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>email.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-b5d7db4460066bc114cb766771612d6f908bd6e440f40de98e4ac311a26b50cd">+16/-152</a></td>

</tr>

<tr>
  <td><strong>graphql.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+80/-35</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>enable-mfa.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-8ed0174991b707a5c54f54ec881656403b4409cd0e3d7004045a80dbeb7b4444">+1/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-1cee8646d2cfba37d6ce6a6e9a8d16f8caba0b99fc3a1ad0cb997ed8c7384d2e">+7/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useSignInEmailPassword.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3342/files#diff-107884d4022cd6c01459f001fa97d2b2ce11566a2c88c8deaec4727c1af44aba">+6/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-06-05 11:38:49 +02:00
robertkasza
4b8478004e feat (dashboard): Add Webauthn to dashboard (#3320) 2025-06-05 10:28:42 +02:00
robertkasza
61eb6cdc2d fix (dashboard): fix e2e test (#3354)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Refactored e2e test for project upgrade

- Removed unnecessary 'await' keywords

- Added step to save payment information

- Commented out local dashboard image build and tests


___



### **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>upgrade-project.test.ts</strong><dd><code>Refactor and
enhance upgrade project e2e test</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/e2e/upgrade-project/upgrade-project.test.ts

<li>Removed redundant 'await' keywords<br> <li> Added step to save
payment information<br> <li> Simplified assertions and variable
assignments<br> <li> Minor code cleanup and formatting


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3354/files#diff-8bafbe707eb1dff0c5ae24d6b0a514ff6e80889237de6c89ec330a93be138a12">+18/-16</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ci.yaml</strong><dd><code>Modify CI workflow to focus
on specific tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/ci.yaml

<li>Commented out local dashboard image build step<br> <li> Removed
Nhost CLI installation and local tests<br> <li> Disabled general e2e
tests run


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3354/files#diff-944291df2c9c06359d37cc8833d182d705c9e8c3108e7cfe132d61a06e9133dd">+21/-21</a>&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-06-05 09:17:46 +02:00
github-actions[bot]
14187d381f chore: update versions (#3332)
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.30.0

### Minor Changes

-   f6947a2: fix: fetch job-backup services logs using Live filter
- 44a3e6b: fix: collapsed main navigation sidebar overlaps mobile navbar
-   99b78f1: feat: dashboard: add download button for soc2 report
-   9acae7d: fix: e2e tests, stop on error when refreshing metadata

### Patch Changes

- 31e636a: fix (dashboard): Use the correct payload to reset metadata
before the e2e tests

## @nhost/docs@2.32.0

### Minor Changes

-   df51c3e: fix: added installation instructions for the CLI

### Patch Changes

-   4d835c4: fix: remove nodejs18
-   2aa81a6: fix (docs): fix audit

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

### Minor Changes

-   6ee2d1f: fix: proper use of onError in middleware

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-03 18:33:21 +00:00
Nuno Pato
99b78f147e feat: dashboard: add download button for soc2 report (#3349)
### **PR Type**
Enhancement


___

### **Description**
- Add SOC2 report download button for eligible organizations

- Implement Soc2Download component with error handling

- Update settings page to include Soc2Download component

- Add environment variable for SOC2 report file ID


___



### **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>Soc2Download.tsx</strong><dd><code>Implement
Soc2Download Component</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;
</dd></summary>
<hr>


dashboard/src/features/orgs/components/general/components/Soc2Download/Soc2Download.tsx

<li>Create Soc2Download component with download functionality<br> <li>
Implement eligibility check for Team and Enterprise plans<br> <li> Add
error handling and user feedback for download process<br> <li> Design UI
for SOC2 report download section


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3349/files#diff-3768eb3fc718d4780028c34b5c76388e8d93cbbac94868f82c1a262fb9cc1100">+88/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Export Soc2Download
Component</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;
</dd></summary>
<hr>


dashboard/src/features/orgs/components/general/components/Soc2Download/index.ts

- Export Soc2Download component as default


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>settings.tsx</strong><dd><code>Add Soc2Download to
Settings Page</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; </dd></summary>
<hr>

dashboard/src/pages/orgs/[orgSlug]/settings.tsx

<li>Import Soc2Download component<br> <li> Add Soc2Download component to
OrgSettings page


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>spicy-walls-joke.md</strong><dd><code>Add Changeset for
SOC2 Download Feature</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.changeset/spicy-walls-joke.md

<li>Add changeset for minor version bump<br> <li> Describe feature
addition for SOC2 report download


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>.env.example</strong><dd><code>Add SOC2 Report File ID
Environment Variable</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/.env.example

- Add NEXT_PUBLIC_SOC2_REPORT_FILE_ID environment variable


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3349/files#diff-b47cf46119af2f0298d96e5657e53e57161833e8b02d87526ac5c1ed9393d477">+3/-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-06-03 15:04:05 +00:00
robertkasza
2aa81a6cb9 fix (docs): fix audit (#3351)
### **PR Type**
Bug fix, Documentation


___

### **Description**
- Update audit-ci.jsonc to allow CVE-2025-48068 for 'next'

- Add new security patches in package.json

- Create changeset for @nhost/docs patch

- Improve documentation and audit compliance


___



### **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>yellow-drinks-sort.md</strong><dd><code>Add changeset
for @nhost/docs patch</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/yellow-drinks-sort.md

<li>Add new changeset file for @nhost/docs<br> <li> Specify patch
version update<br> <li> Include fix message for documentation audit


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>audit-ci.jsonc</strong><dd><code>Update audit-ci.jsonc
allowlist for security exception</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

audit-ci.jsonc

- Add allowlist entry for CVE-2025-48068 in 'next' path


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update package.json with
new security patches</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

<li>Add new security patches for undici and tar-fs<br> <li> Update
existing security patch versions<br> <li> Adjust formatting for
consistency


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3351/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+4/-2</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-06-03 16:01:52 +02:00
David Barroso
c2b5a499af chore: update CI (#240)
### **PR Type**
Enhancement


___

### **Description**
• Enhanced CI security with permission checks and safe_to_test label
• Added AI-powered PR review workflow with Claude integration
• Migrated to Blacksmith runners and S3-based Nix cache
• Improved AWS integration with OIDC and ECR authentication


___



### **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>checks.yaml</strong><dd><code>Enhanced security with
permission checks</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.github/workflows/checks.yaml

• Changed trigger from <code>pull_request</code> to
<code>pull_request_target</code> for <br>security<br> • Added permission
check job requiring <code>safe_to_test</code> label or <br>trusted
user<br> • Added secrets for AWS account, Nix cache keys<br> • Added
<br>job to automatically remove <code>safe_to_test</code> label after
use


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/240/files#diff-4af11422a4987e947e5a47adead7a30d32cdb2db82e2d3fe36f8e6cbe84d5ac5">+36/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>gen_ai_review.yaml</strong><dd><code>Added AI review
workflow</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>

.github/workflows/gen_ai_review.yaml

• New workflow for AI-powered PR reviews using Claude Sonnet model<br> •
<br>Triggers on PR events and issue comments<br> • Configured with
OpenAI and <br>Anthropic API keys<br> • Ignores generated files and
vendor directories


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/240/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_build_artifacts.yaml</strong><dd><code>Migrated to
Blacksmith runners and S3 cache</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.github/workflows/wf_build_artifacts.yaml

• Migrated from Ubuntu runners to Blacksmith ARM/x64 runners<br> •
<br>Replaced Magic Nix Cache with S3-based cache using AWS
credentials<br> • <br>Added AWS OIDC configuration and ECR
integration<br> • Improved <br>architecture detection and artifact
naming


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/240/files#diff-63d6f3e2e5894df4d88cf2c82b3d0c90e7b0b7c8ca9da25a3d46f35f15270fb0">+28/-22</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_check.yaml</strong><dd><code>Enhanced checks with
AWS integration</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>

.github/workflows/wf_check.yaml

• Migrated to Blacksmith ARM runner with reduced timeout<br> • Added AWS
<br>OIDC and ECR login configuration<br> • Replaced Magic Nix Cache with
<br>S3-based cache<br> • Enhanced build verification for both Go and
Node <br>components


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/240/files#diff-c2ecea6736037ba6304681d744d612d44d7681788d2fbc58ce223cf52ecefa43">+47/-25</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>release.yaml</strong><dd><code>Updated release workflow
secrets</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; </dd></summary>
<hr>

.github/workflows/release.yaml

• Added secrets for AWS account and Nix cache keys<br> • Removed
<code>DOCKER</code> <br>input parameter from build artifacts call


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-storage/pull/240/files#diff-e426ed45842837026e10e66af23d9c7077e89eacbe6958ce7cb991130ad05ada">+9/-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-05-30 11:39:15 +02:00
David Barroso
4d56ac937b fix: more fixes to webauthn schema that were causing problems (#641)
### **PR Type**
Bug fix


___

### **Description**
• Fix WebAuthn schema structure for signup verification
• Move nickname field to top level in request
• Update OpenAPI specification for proper schema
• Correct test cases with new field structure


___



### **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>server.gen.go</strong><dd><code>Regenerate server code
with fixed schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/api/server.gen.go

• Update generated server code with new WebAuthn schema<br> • Regenerate
<br>swagger specification with corrected structure


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/641/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+73/-73</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Restructure WebAuthn
signup verification request types</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/api/types.gen.go

• Move <code>nickname</code> field to top level in
<code>SignUpWebauthnVerifyRequest</code><br> • <br>Replace nested
options structure with reference to <code>SignUpOptions</code><br> •
<br>Simplify request structure by removing duplicate fields


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/641/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+4/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signup_webauthn_verify.go</strong><dd><code>Update
nickname handling in WebAuthn verification</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signup_webauthn_verify.go

• Update nickname extraction to use top-level field<br> • Remove nested
<br>options nickname handling<br> • Use <code>deptr</code> helper for
nickname value <br>extraction


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Fix OpenAPI schema for
WebAuthn signup verification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

• Move <code>nickname</code> field to top level in
<code>SignUpWebauthnVerifyRequest</code><br> • <br>Replace inline
options with reference to <code>SignUpOptions</code> schema<br> • Remove
<br>YAML anchor reference for cleaner structure


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/641/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+5/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>post_signup_webauthn_verify_test.go</strong><dd><code>Update
WebAuthn verification tests for new schema</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signup_webauthn_verify_test.go

• Add <code>Nickname</code> field to test request objects<br> • Update
expected <br>database values for nickname field<br> • Ensure all test
cases include <br>nickname parameter


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/641/files#diff-c93cb267e3fcbec34fe2f8c5dbc204bb6d2cbc9fff58597ad761da5a8e661c3c">+8/-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-05-30 10:16:12 +02:00
David Barroso
f300de5cc4 fix: minor fixes to webauthn schema that were causing problems (#640)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Improved error handling in PostSigninWebauthn

- Fixed SignInWebauthnVerifyRequest and SignUpWebauthnVerifyRequest
schemas

- Updated SignUpWebauthnVerifyRequest credential field

- Removed additional properties from request objects


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Error
handling</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Enhance error handling
in PostSigninWebauthn</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/server.gen.go

<li>Added error check for io.EOF in PostSigninWebauthn<br> <li> Improved
error handling for JSON binding


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/640/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+78/-76</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Update WebAuthn request
structs and remove custom JSON handling</code></dd></summary>
<hr>

go/api/types.gen.go

<li>Removed AdditionalProperties from SignInWebauthnVerifyRequest<br>
<li> Updated SignUpWebauthnVerifyRequest Credential field to
non-pointer<br> <li> Removed custom JSON marshaling/unmarshaling methods


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/640/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+8/-174</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>post_signup_webauthn_verify_test.go</strong><dd><code>Update
WebAuthn request structs in test cases</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signup_webauthn_verify_test.go

<li>Updated WebAuthn request structs in test functions<br> <li> Removed
AdditionalProperties from test request objects


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/640/files#diff-c93cb267e3fcbec34fe2f8c5dbc204bb6d2cbc9fff58597ad761da5a8e661c3c">+18/-25</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Update OpenAPI schema
for WebAuthn requests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

<li>Made signin/webauthn requestBody optional<br> <li> Removed
additionalProperties from WebAuthn verify requests<br> <li> Updated
SignUpWebauthnVerifyRequest schema


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/640/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+11/-11</a>&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-05-28 19:31:59 +02:00
David Barroso
48269c3d2e fix: extract email and set MAIL FROM and RCPT TO header correctly (#639)
### **User description**
This should fix an issue when using in the from `My Name <asd@asd.com>`
with stricter servers like Gmail.


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Extract email addresses from formatted strings

- Use extracted emails for SMTP envelope

- Add ExtractEmail function and unit tests

- Update email sending test cases


___



### **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>email.go</strong><dd><code>Enhance email extraction and
SMTP envelope handling</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/notifications/email.go

<li>Add ExtractEmail function to parse email addresses<br> <li> Modify
Send function to use extracted email addresses<br> <li> Update SMTP
envelope with plain email addresses


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/639/files#diff-23fa6c5970f0d27bd2b007e64626e30c82dd1f5c19391dcbfe544e26f393ea86">+17/-2</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>email_test.go</strong><dd><code>Add tests for email
extraction and sending</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/notifications/email_test.go

<li>Add unit tests for ExtractEmail function<br> <li> Expand
TestEmailSend with new test cases<br> <li> Test both plain and formatted
email addresses


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/639/files#diff-15b6541fe822c5bba389b86f6988a6ef20b0b694703889f84acf4d5013df7c18">+65/-6</a>&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-05-26 19:55:38 +02:00
David BM
a1edaf18ea fix: update requirements in DEVELOPERS.md (#3345)
### **User description**
Update requirements for development to Node.js 20


___

### **PR Type**
Documentation


___

### **Description**
- Update Node.js requirement to v20 or later

- Remove mention of Node.js v16 support

- Simplify Node.js version requirement section


___



### **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>DEVELOPERS.md</strong><dd><code>Update Node.js version
requirement</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>

DEVELOPERS.md

<li>Updated Node.js requirement to v20 or later<br> <li> Removed mention
of Node.js v16 support<br> <li> Simplified Node.js version requirement
section


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3345/files#diff-bd017515eb79a7fb7569b1d15e8963ea380123d4fdf779978dd4b3ab7500fd10">+1/-3</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>

Co-authored-by: David Barroso Murcia <davidbm@air-m4.local>
2025-05-22 12:14:15 +02:00
David Barroso
4d835c4b9c fix (docs): remove nodejs18 (#3343)
### **PR Type**
Documentation


___

### **Description**
- Remove Node.js 18 runtime from supported versions

- Update documentation to reflect current runtimes

- Remove Node.js 18 configuration example

- Add changeset for patch update to @nhost/docs


___



### **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>brave-garlics-act.md</strong><dd><code>Add changeset
for removing Node.js 18</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/brave-garlics-act.md

<li>Add new changeset file for @nhost/docs patch update<br> <li>
Describe fix to remove Node.js 18


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>runtimes.mdx</strong><dd><code>Update runtimes
documentation to remove Node.js 18</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/products/functions/runtimes.mdx

<li>Remove Node.js 18 from list of supported runtimes<br> <li> Delete
Node.js 18 configuration example<br> <li> Update supported versions to
Node.js 20 and 22


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3343/files#diff-41cc586838cadca39a91bf32878fb7cc5473d5815dec595547a4089684b5d489">+0/-9</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-05-20 22:19:18 +02:00
David BM
44a3e6bd41 fix (dashboard): collapsed main navigation sidebar overlaps mobile navbar (#3341) 2025-05-20 22:05:58 +02:00
Dimitri POSTOLOV
6ee2d1f5bf fix (examples/nextjs-server-components): proper use of onError in middleware (#3330)
onError should be returned since it can contain `NextResponse.redirect`
like in the example
e87505c564/examples/quickstarts/nextjs-server-components/src/middleware.ts (L5-L7)

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-05-19 11:21:06 +02:00
dependabot[bot]
984c2733a0 chore: bump Codium-ai/pr-agent from 0.28 to 0.29 (#633)
### **User description**
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.28 to 0.29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.29</h2>
<p>codiumai/pr-agent:0.29
codiumai/pr-agent:0.29-github_app
codiumai/pr-agent:0.29-bitbucket-app
codiumai/pr-agent:0.29-gitlab_webhook
codiumai/pr-agent:0.29-github_action
codiumai/pr-agent:0.29-azure_devops_webhook</p>
<h2>What's Changed</h2>
<ul>
<li>Update logging configuration to use dynamic log level from settings
by <a href="https://github.com/jmrtnz94"><code>@​jmrtnz94</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1667">qodo-ai/pr-agent#1667</a></li>
<li>Docs: Add Core Abilities / Interactivity by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1674">qodo-ai/pr-agent#1674</a></li>
<li>Updated Dockerfile.lambda for python version 3.12 by <a
href="https://github.com/saumil-kapadia-stellantispublic"><code>@​saumil-kapadia-stellantispublic</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1677">qodo-ai/pr-agent#1677</a></li>
<li>Add support of OpenAI GPT-4.5 Preview model by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1679">qodo-ai/pr-agent#1679</a></li>
<li>Add support of Meta's Llama 4 Scout and Maverick 17b from Groq Cloud
by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1680">qodo-ai/pr-agent#1680</a></li>
<li>Add support of xAI and their Grok-2 &amp; Grok-3 model by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1684">qodo-ai/pr-agent#1684</a></li>
<li>Add support of Gemini 2.5 Pro preview model by <a
href="https://github.com/imperorrp"><code>@​imperorrp</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1685">qodo-ai/pr-agent#1685</a></li>
<li>Support Bitbucket Basic Auth by <a
href="https://github.com/wirelessr"><code>@​wirelessr</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1683">qodo-ai/pr-agent#1683</a></li>
<li>Add support of OpenAI GPT-4.1 model family by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1694">qodo-ai/pr-agent#1694</a></li>
<li>Fix Discord link in README by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1691">qodo-ai/pr-agent#1691</a></li>
<li>Correct the tools guide link in the locally installation doc by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1692">qodo-ai/pr-agent#1692</a></li>
<li>Improve Markdown format in model configuration guide by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1693">qodo-ai/pr-agent#1693</a></li>
<li>Azure AD authentication for OpenAI services by <a
href="https://github.com/arpit-at"><code>@​arpit-at</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1698">qodo-ai/pr-agent#1698</a></li>
<li>Add new tool for scanning repository discussions and generating best
… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1701">qodo-ai/pr-agent#1701</a></li>
<li>Add OpenAI o3 &amp; o4-mini reasoning models by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1702">qodo-ai/pr-agent#1702</a></li>
<li>Add Basic Authentication method for Jira Data Center/Server and
valid… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1705">qodo-ai/pr-agent#1705</a></li>
<li>Improve markdown docs formatting for consistency and readability by
<a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1706">qodo-ai/pr-agent#1706</a></li>
<li>Update GitHub actions version by <a
href="https://github.com/DongjaJ"><code>@​DongjaJ</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1704">qodo-ai/pr-agent#1704</a></li>
<li>Add support for Mistral and Codestral models by <a
href="https://github.com/dst03106"><code>@​dst03106</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1707">qodo-ai/pr-agent#1707</a></li>
<li>Add .venv/ to .dockerignore and .gitignore for virtual env
compatibility by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1709">qodo-ai/pr-agent#1709</a></li>
<li>docs: updated bitbucket pipeline docs by <a
href="https://github.com/nicohein"><code>@​nicohein</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1703">qodo-ai/pr-agent#1703</a></li>
<li>Feature/simplified bitbucket pipeline by <a
href="https://github.com/nicohein"><code>@​nicohein</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1711">qodo-ai/pr-agent#1711</a></li>
<li>Replace default o3-mini with o4-mini by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1710">qodo-ai/pr-agent#1710</a></li>
<li>Improvement: Enhance ask_line tool by adding PR review comment
threads as context by <a
href="https://github.com/benedict-lee"><code>@​benedict-lee</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1687">qodo-ai/pr-agent#1687</a></li>
<li>Add documentation for chat functionality in code suggestions by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1719">qodo-ai/pr-agent#1719</a></li>
<li>Tr/multi model prompt by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1726">qodo-ai/pr-agent#1726</a></li>
<li>Docs: fix typo in response_language setting inside .pr-agent.toml
configuration guide by <a
href="https://github.com/bananana0118"><code>@​bananana0118</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1721">qodo-ai/pr-agent#1721</a></li>
<li>Update .gitignore and fix license format in pyproject.toml by <a
href="https://github.com/barnett-yuxiang"><code>@​barnett-yuxiang</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1718">qodo-ai/pr-agent#1718</a></li>
<li>Fix type hint for get_pr_description method and clean up whitespace
by <a
href="https://github.com/barnett-yuxiang"><code>@​barnett-yuxiang</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1728">qodo-ai/pr-agent#1728</a></li>
<li>docs: update Gemini model path from google_ai_studio to gemini in
con… by <a
href="https://github.com/Yash-1511"><code>@​Yash-1511</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1731">qodo-ai/pr-agent#1731</a></li>
<li>Use slim Docker image and install git and curl dependencies by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1738">qodo-ai/pr-agent#1738</a></li>
<li>doc: title refinement by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1737">qodo-ai/pr-agent#1737</a></li>
<li>Azure devops: parse PR url starting from the end by <a
href="https://github.com/twdkeule"><code>@​twdkeule</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1742">qodo-ai/pr-agent#1742</a></li>
<li>Openrouter support by <a
href="https://github.com/irfansofyana"><code>@​irfansofyana</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1744">qodo-ai/pr-agent#1744</a></li>
<li>fix: Prevent duplicate language instructions in extra_instructions
by <a href="https://github.com/MaxnSter"><code>@​MaxnSter</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1745">qodo-ai/pr-agent#1745</a></li>
<li>fix(gitlab): trigger when MR changes from draft to ready by <a
href="https://github.com/simonstamm"><code>@​simonstamm</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1749">qodo-ai/pr-agent#1749</a></li>
<li>fix:correct typo in logger parameter from 'artifacts' to 'artifact'
by <a
href="https://github.com/jihan-chillin"><code>@​jihan-chillin</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1753">qodo-ai/pr-agent#1753</a></li>
<li>docs: clarify that .pr_agent.toml can be updated post PR creation by
<a href="https://github.com/isExample"><code>@​isExample</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1760">qodo-ai/pr-agent#1760</a></li>
<li>fix: avoid duplicate header for list types to prevent markdown break
by <a href="https://github.com/joosomi"><code>@​joosomi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1758">qodo-ai/pr-agent#1758</a></li>
<li>fix: update Docker base image to slim version and install required
de… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1762">qodo-ai/pr-agent#1762</a></li>
<li>Implement Azure Devops persistent comment by <a
href="https://github.com/twdkeule"><code>@​twdkeule</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1746">qodo-ai/pr-agent#1746</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="db5138dc42"><code>db5138d</code></a>
Improve YAML parsing with additional fallback strategies for AI
predictions</li>
<li><a
href="9a9feb47a6"><code>9a9feb4</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1786">#1786</a>
from qodo-ai/pr-1736</li>
<li><a
href="52ce74a31a"><code>52ce74a</code></a>
Remove debug print statements from repository filtering tests</li>
<li><a
href="f47da75e6f"><code>f47da75</code></a>
Remove debug print statement from should_process_pr_logic function</li>
<li><a
href="42557feb97"><code>42557fe</code></a>
Enhance repository filtering with regex pattern matching for
ignore_repositories</li>
<li><a
href="c15fb16528"><code>c15fb16</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1779">#1779</a>
from dnnspaul/main</li>
<li><a
href="d268db5f0d"><code>d268db5</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1778">#1778</a>
from smartandhandsome/main</li>
<li><a
href="ec626f0193"><code>ec626f0</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1785">#1785</a>
from qodo-ai/tr/gemini-2.5-pro-preview-05-06</li>
<li><a
href="9974015682"><code>9974015</code></a>
Add Gemini-2.5-pro-preview-05-06 model and update litellm
dependency</li>
<li><a
href="250870a3da"><code>250870a</code></a>
enable usage of openai like apis</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.28...v0.29">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.28&new-version=0.29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Enhancement


___

### **Description**
- Update PR Agent action to version 0.29


___



### **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>gen_ai_review.yaml</strong><dd><code>Bump PR Agent
action version</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; </dd></summary>
<hr>

.github/workflows/gen_ai_review.yaml

- Updated Codium-ai/pr-agent action from v0.28 to v0.29


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/633/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 10:16:31 +02:00
Calvin
df51c3e64e fix (docs): added installation instructions for the CLI (#3329)
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-05-16 09:01:45 +02:00
David BM
9acae7d1c4 fix (dashboard ci): stop playwright e2e tests run after first failure (#3334)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Reload metadata for Graphite's remote schemas in e2e tests

- Add 'reload_remote_schemas' parameter to metadata reload

- Include Changeset for version tracking


___



### **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>refresh-metadata.setup.ts</strong><dd><code>Add
Graphite remote schema to metadata reload</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/e2e/setup/refresh-metadata.setup.ts

<li>Add 'reload_remote_schemas' parameter with value ['graphite']<br>
<li> Include Graphite remote schema in metadata reload


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>wild-stingrays-help.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/wild-stingrays-help.md

<li>Create new changeset file<br> <li> Specify minor version bump for
'@nhost/dashboard'<br> <li> Add description of the fix


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3334/files#diff-b5a0c57a4f2bd08515f9feef3c38804e7f948ffb4b76418f6549131f61cf20fd">+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-05-15 18:03:29 +02:00
David BM
f6947a2194 fix (dashboard): logs page, fetch job-backup services logs using Live filter (#3333)
### **User description**
Adds `job-backup.+` regex pattern to the service filter in the logs
subscription, to match any job-backup services


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix logs fetching for job-backup services

- Implement regex pattern for job-backup service filter

- Improve live log subscription functionality

- Add changeset for version tracking


___



### **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>logs.tsx</strong><dd><code>Improve log fetching for
job-backup services</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/pages/orgs/[orgSlug]/projects/[appSubdomain]/logs.tsx

<li>Modify service filter in logs subscription<br> <li> Implement regex
pattern 'job-backup.+' for job-backup services<br> <li> Enhance
conditional logic for service filtering


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3333/files#diff-77489a68a7526d74f06d59019ad68c44728b7620637308d70fba38d6649b73fa">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>hungry-waves-destroy.md</strong><dd><code>Add changeset
for version tracking</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/hungry-waves-destroy.md

<li>Add new changeset file<br> <li> Specify minor version bump for
@nhost/dashboard<br> <li> Document fix for job-backup services logs
fetching


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3333/files#diff-45dd073b01febac00c055bb63f51182ff043ee7a5df2c12058232caf2d2a31ca">+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-05-14 13:55:11 +02:00
robertkasza
31e636a9c8 fix (dashboard): Use the correct payload to reset metadata before e2 tests (#3331)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Fix metadata reset payload in e2e tests

- Improve error handling and logging for metadata consistency

- Add changeset for patch 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>refresh-metadata.setup.ts</strong><dd><code>Refactor
metadata reset and improve consistency checks</code>&nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/e2e/setup/refresh-metadata.setup.ts

<li>Updated payload for metadata reset (removed
<code>reload_remote_schemas</code>, set <br><code>reload_sources</code>
to false)<br> <li> Enhanced error handling and logging for metadata
consistency<br> <li> Added detailed console logging for inconsistent
metadata


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>lemon-flies-live.md</strong><dd><code>Add changeset for
dashboard patch update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/lemon-flies-live.md

<li>Added changeset file for patch version bump<br> <li> Described fix
for metadata reset in e2e tests


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3331/files#diff-25789650a83994d924e29e67aafc8011da8f98e2178211207de1ef049d53e4f6">+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-05-13 13:18:29 +02:00
github-actions[bot]
0fdff345ac chore: update versions (#3327)
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.29.0

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit
-   a0931e2: fix: improve logs time range and filter selection
- c0635ae: feat (dashboard): Add information about that free
organization cannot be upgraded.
- e87505c: fix: can downsize postgres storage capacity using local
dashboard

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

## @nhost-examples/sveltekit@0.8.0

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

### Patch Changes

-   97db637: fix: fix settings

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

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

### Minor Changes

-   c97b43f: fix: update vite to address vulnerability audit

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-05-12 20:05:18 +00:00
David Barroso
97db63791b fix (examples/react-apollo): fix settings (#3301)
### **PR Type**
Enhancement, Configuration changes


___

### **Description**
- Update auth settings in nhost.toml

- Remove rate limiting configurations

- Remove SMTP provider settings

- Add 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>lazy-years-kneel.md</strong><dd><code>Add changeset for
patch 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/lazy-years-kneel.md

<li>Add new changeset file for patch version bump<br> <li> Specify
'@nhost-examples/react-apollo' package<br> <li> Include fix description


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>nhost.toml</strong><dd><code>Update Nhost configuration
settings</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>

examples/react-apollo/nhost/nhost.toml

<li>Change auth.elevatedPrivileges.mode to 'recommended'<br> <li> Remove
auth.rateLimit configurations<br> <li> Remove provider.smtp settings<br>
<li> Update allowed URLs for auth redirections


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3301/files#diff-268d6c8dddd6990d60d62c1c923955c4e0e7549a80f0f5856192f889378416a0">+1/-30</a>&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-05-12 19:30:59 +02:00
David BM
a0931e282f fix (dashboard): logs persist time range selector, fix validation (#3300)
### **User description**
Resolves #3154


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix logs search functionality with selected service filter

- Implement persistent time range selector

- Add interval-based date range selection

- Improve form validation and submission logic


___



### **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>LogsDatePicker.tsx</strong><dd><code>Enhance
LogsDatePicker with form context integration</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/logs/components/LogsDatePicker/LogsDatePicker.tsx

<li>Import LogsFilterFormValues type and useFormContext hook<br> <li>
Add setValue function from form context<br> <li> Implement
handleDateChange to update selected date and reset interval<br> <li>
Update DatePicker onChange to use new handleDateChange function


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3300/files#diff-0768cb2a5cee4ab57a64580c34213950a042a9893b5da51b8886e166cb7a9060">+9/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>LogsHeader.tsx</strong><dd><code>Improve LogsHeader
with interval support and form handling</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/logs/components/LogsHeader/LogsHeader.tsx

<li>Add interval to validation schema and form default values<br> <li>
Implement interval-based date recalculation in handleSubmit<br> <li>
Update form mode to 'onChange' for real-time validation<br> <li> Modify
useEffect to trigger submission on service change


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>LogsRangeSelector.tsx</strong><dd><code>Enhance
LogsRangeSelector with interval selection and UI
updates</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/logs/components/LogsRangeSelector/LogsRangeSelector.tsx

<li>Add interval handling in LogsToDatePickerLiveButton<br> <li>
Implement interval setting in handleIntervalChange function<br> <li>
Update Button variant based on selected interval<br> <li> Add interval
to useWatch hook for reactive updates


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3300/files#diff-46dd7c795a79e4b443213ed10089651423d13e5c776ca72e3a95ae5e0f7f63c8">+9/-2</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-05-12 18:31:58 +02:00
David BM
e87505c564 fix (dashboard): downsize postgres using local dashboard (#3292)
### **User description**
Fixes #3265


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix PostgreSQL version parsing for empty strings

- Enable downsizing Postgres in local dashboard

- Improve handling of free project and platform checks

- Update refetch queries with optional chaining


___



### **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>useGetPostgresVersion.ts</strong><dd><code>Fix
PostgreSQL version parsing for empty strings</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/common/hooks/useGetPostgresVersion/useGetPostgresVersion.ts

<li>Add fallback to empty string for <code>version</code> in
<br><code>splitPostgresMajorMinorVersions</code>


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.tsx</strong><dd><code>Update refetch queries with
optional chaining</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/pages/orgs/[orgSlug]/projects/[appSubdomain]/settings/index.tsx

- Add optional chaining for `userData.id` in refetch queries


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>DatabaseStorageCapacity.tsx</strong><dd><code>Improve
database storage capacity handling and UI</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/settings/components/DatabaseStorageCapacity/DatabaseStorageCapacity.tsx

<li>Add <code>isEmptyValue</code> check for <code>org</code> object<br>
<li> Introduce <code>shouldShowUpdateCapacityWarning</code> variable<br>
<li> Modify <code>submitDisabled</code> logic for non-platform
environments<br> <li> Update conditional rendering of
<code>DatabaseStorageCapacityWarning</code>


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3292/files#diff-097a59d13b44816051386182a444eadfe2dcacd69b88c121af6733d7eca3ee43">+16/-3</a>&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-05-08 14:02:09 +02:00
robertkasza
c0635ae1c7 feat (dashboard): Add information about that free organization cannot be upgraded (#3316)
### **PR Type**
Enhancement


___

### **Description**
- Add info about free org upgrade limitations

- Introduce new 'NewOrgButton' component

- Update UI for subscription plan section

- Improve text link component functionality


___



### **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>InfoAlert.tsx</strong><dd><code>Enhance AlertTitle
styling</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; </dd></summary>
<hr>

dashboard/src/features/orgs/components/InfoAlert/InfoAlert.tsx

- Added 'font-semibold' class to AlertTitle


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>SubscriptionPlan.tsx</strong><dd><code>Update
subscription plan UI and add free org info</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/components/billing/components/SubscriptionPlan/SubscriptionPlan.tsx

<li>Added InfoAlert for free organizations<br> <li> Introduced
NewOrgButton component<br> <li> Updated layout and styling of
subscription plan section<br> <li> Replaced Link component with TextLink


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3316/files#diff-2a5f070869055286b669e382b18d656935752803b9a1ef13390ac028c2a48ac4">+32/-30</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>TextLink.tsx</strong><dd><code>Enhance TextLink
component with optional icon</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/common/components/TextLink/TextLink.tsx

<li>Added optional icon to TextLink component<br> <li> Introduced
withIcon prop for flexibility


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3316/files#diff-2f49ce51c83fab712173974ec09621f291ef56a7ad056df587c1bfd525ae6983">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>good-frogs-share.md</strong><dd><code>Add changeset for
dashboard feature</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/good-frogs-share.md

- Added changeset file for version bump


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3316/files#diff-ff1c12916da9254a5d59fef39d5220a0ccdd20a7e66e1436a860da9a014d31ee">+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-05-07 13:31:01 +02:00
robertkasza
d2a9a9ae1d fix: update labeler config (#3328)
### **PR Type**
Enhancement


___

### **Description**
- Update labeler configuration for all categories

- Standardize format using 'any' key for all rules

- Remove redundant 'any' key for documentation category

- Maintain existing category definitions and file patterns


___



### **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>labeler.yml</strong><dd><code>Standardize and simplify
labeler configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/labeler.yml

<li>Standardized all rules using 'any' key<br> <li> Removed redundant
'any' key for documentation<br> <li> Maintained existing category
definitions and file patterns<br> <li> Simplified overall configuration
structure


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3328/files#diff-a22c263686553013feaeb0677d26eeb0b8778a756c4311c1fce13384258026aa">+8/-9</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-05-07 10:00:34 +02:00
David BM
c97b43f149 fix (ci): update vite to solve vulnerability audit (#3323)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Update Vite to address vulnerability audit

- Upgrade Vite in multiple project dependencies

- Update package overrides for security

- Add changeset for minor version bumps


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>chatty-kids-exist.md</strong><dd><code>Add changeset for
minor version updates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-22d27113acb695bcdab878d71e0e553a23f87070faeb4672ce09bf2108c56064">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-83675898dc6ed88838763232d022f6e100e07d71681cc8a1f02aee99ee3f229b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-9fb3a23f389ab1d192d7e018d2acbe512bd8792278662101401caa98692735db">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-cb7094614884e8cd2c8fb67dadedb1887c46c31b888840def0b7042273bfbb28">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v6.2.7</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; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-6288951fff74ec246c9cc023b7b7e3e9aad31423891bc4ea25b5d84a5f5b061f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-d95dc3391741287366ea2e61f70e9ccc64452e0d22b1db91d6bf524f5aa4331c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-8a3e5ed0f618f15211c31f700e0da998e2eae58f60353624b7a7e637bd63b153">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-fc4298d3512fdd9a3d871f9f182fe871c8beccd1580f864a271ddfb32005feef">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite to
v5.4.19</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; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-85166d1137e29a5275f991e1e94a0c9d5b83ac7504463ba76f9187b2b750c895">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite and adjust
overrides</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3323/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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>

---------

Co-authored-by: robertkasza <robert.kasza@bishop-co.com>
2025-05-06 14:39:39 +02:00
David Barroso
b0a2ceb368 chore: update dependencies (#238) 2025-05-06 11:44:25 +02:00
David Barroso
c9b0829936 chore: update dependencies (#627)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Update Go version and dependencies

- Replace context.Background() with t.Context() in tests

- Remove deprecated linter and update config

- Minor code improvements and refactoring


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>controller.go</strong><dd><code>Remove linter directive for
In5Minutes constant</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>20
files</summary><table>
<tr>
<td><strong>get_mfa_totp_generate_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-f3713ebc3b23b6469bb6dc61b17c2511b8ba2c99dde26c5a71aabb0a5ae43383">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>get_verify_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-39be138c7af04b1b5589a328930150326200286aecd694c8ca46d72d455e1b78">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>jwt_test.go</strong><dd><code>Replace context.Background()
with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-1bb7d62cd5e7e79b93a2ac196e721568eb7356b61e3751d2ef4781f5a725ef1d">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_link_idtoken_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-8de432126fa0e0242bd7183c12a5759f7ba3d06593e38311a6b379485b2c7452">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_pat_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-4b905185be2ca4eaf99c16dd769958f6adfb6db2d2d01b528e54cfd36182d7fb">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_anonymous_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-c25dbd9375a284855b2297546ad1f6e2550bfaa189af9aea805d8a20c21fddea">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_email_password_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-20169cf1b0f6c102c29b882d28234333096dd5fc226ad1a92119e00206e4c26e">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_idtoken_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-2f07c5c0613472bcfad7967a8116602ffa8f33856de94380d50ccdbd95bec206">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_otp_email_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-8b00ba05ca046df6350ea7ebd3e3537b752b009847691497eb5d09c09f265b5c">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_otp_email_verify_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-df88ef70165a67033c322cc91cd5d0c28d7459f69c709ac9074fb8222e518a7f">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_passwordless_email_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-6cf1790ea2f14ead08fcbf57f06999577a8d5a6fc4879c55259e06c918d9bf24">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_pat_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-020127c3b0d584aa14d94f93ce33be359ce58e7fb9b893211d4edaaceedac9e9">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_webauthn_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-71a06b6b10627842b843348d8879303850ca5badbf947b37fd3df2e667c2bc88">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signin_webauthn_verify_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-1c449231790f6e56e26d47fecb200b1f2b3585ea9f80ad19ab8f905b01094a46">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signup_email_password_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-c7050138b811ec2f854c0dfa34ac1eb9f03831c1f682e6a677dfe16943cb5f84">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signup_webauthn_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-d90cf5c246e6e577eeafbd15f2ea2c408e2f986f189e856d4a8f232646973708">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_signup_webauthn_verify_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-c93cb267e3fcbec34fe2f8c5dbc204bb6d2cbc9fff58597ad761da5a8e661c3c">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_token_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-dfb4a72aeccf26b3cfb4f1a91a0d2807896febd4b602cfca4b751636befde18a">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_user_deanonymize_test.go</strong><dd><code>Replace
context.Background() with t.Context()</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-c077333848bdcde6b8bc815156611f192435547d157d737b2ca0917866f22b45">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>16 files</summary><table>
<tr>
  <td><strong>.golangci.yaml</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-9917ddc9f1c3304218f7269265b746d997c5c0615478177b5fceecd33ef47cb5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>flake.nix</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>go.mod</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+34/-34</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>go.sum</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+66/-69</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>post_user_email_change_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-1cc2440c6e04141e9abc99d283a11e30ced4121e5f96377aed34d625bdfd2ab8">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>post_user_email_send_verification_email_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-e3438fe2db9d9711db2af3603c1fe8d958ff471245d3695bb4dcc3219de75705">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>post_user_mfa_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-5795028fd6afc716636f4ca00cfb373dc3682a542051e7e70f9b1808ecf5f26e">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>post_user_password_reset_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-ef3d18015291d93942987bb41c30132d066b0df39768694a8555d34d00f6f7f6">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>post_user_password_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-a0149a7dddf770ad3de4c8223e5691ff811d5f04c9b20a726e40de12cf76ce1e">+2/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>hibp_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-f00839be7ce580c1a8cf7a82041ac8879131e057318d06730274f78c336f9b80">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>email_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-15b6541fe822c5bba389b86f6988a6ef20b0b694703889f84acf4d5013df7c18">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>idtoken_test.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-329b609f83ff40defe79f2c984595b7b8cee9be2171da1c0ada41d2649c048ad">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>auth_schema_dump.sql</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-b25465e2d1263a553f7859fb72207fc7a8ce4a9e641969e8100306495b8d5965">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>db.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-4c4223e34371961b4e9566335915a222c25b701e7a1d65825857196a4c94736c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>models.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-73b8d99da1821ef6f068193ecff3af6001c802243dd77e6dda0b4fe5313d874b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>query.sql.go</strong></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/627/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-05-06 11:44:11 +02:00
github-actions[bot]
2026bb7a9c chore: update versions (#3298)
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/apollo@8.0.8

### Patch Changes

-   @nhost/nhost-js@3.2.8

## @nhost/react-apollo@17.0.4

### Patch Changes

-   @nhost/apollo@8.0.8
-   @nhost/react@3.10.4

## @nhost/react-urql@14.0.4

### Patch Changes

-   @nhost/react@3.10.4

## @nhost/hasura-auth-js@2.11.1

### Patch Changes

- 5ff4dd6: fix (hasura-auth-js|hasura-storage-js): update e2e config for
packages

## @nhost/hasura-storage-js@2.7.1

### Patch Changes

- 5ff4dd6: fix (hasura-auth-js|hasura-storage-js): update e2e config for
packages

## @nhost/nextjs@2.2.7

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/react@3.10.4

## @nhost/nhost-js@3.2.8

### Patch Changes

-   Updated dependencies [5ff4dd6]
    -   @nhost/hasura-storage-js@2.7.1
    -   @nhost/hasura-auth-js@2.11.1

## @nhost/react@3.10.4

### Patch Changes

-   @nhost/nhost-js@3.2.8

## @nhost/vue@2.9.5

### Patch Changes

-   @nhost/nhost-js@3.2.8

## @nhost/dashboard@2.28.0

### Minor Changes

-   8552678: feat: dashboard: add additional events to segment
-   0bf2808: chore: refresh metadata before end-to-end tests
-   72a365c: fix: correct graphql page roles dropdown's source
-   cef6471: fix: dashboard: add anonid to user's metadata

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
-   233232b: feat (dashboard): improve Upgrade project dialog
-   Updated dependencies [d9eb906]
    -   @nhost/nextjs@2.2.7
    -   @nhost/react-apollo@17.0.4

## @nhost/docs@2.31.0

### Minor Changes

-   b302dbd: feat: added sveltekit quickstart

### Patch Changes

-   5e96230: fix: fixing mintlify breaking our docs

## @nhost-examples/cli@0.3.21

### Patch Changes

-   @nhost/nhost-js@3.2.8

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/react@3.10.4
    -   @nhost/react-apollo@17.0.4

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/react@3.10.4

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/react@3.10.4
    -   @nhost/react-urql@14.0.4

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

### Patch Changes

-   @nhost/nhost-js@3.2.8

## @nhost-examples/nextjs@0.4.7

### Patch Changes

-   fad7f64: chore: fix typo
-   d9eb906: fix: update vite and nextjs because of vulnerability
-   Updated dependencies [d9eb906]
    -   @nhost/nextjs@2.2.7
    -   @nhost/react@3.10.4
    -   @nhost/react-apollo@17.0.4

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

### Patch Changes

-   @nhost/nhost-js@3.2.8

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/nhost-js@3.2.8

## @nhost-examples/sveltekit@0.7.1

### Patch Changes

-   f8243f9: chore (examples/svelte): update @sveltejs/kit
-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/nhost-js@3.2.8

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
- efd68c3: chore (react-apollo): use preview build instead of local dev
server for e2e tests
    -   @nhost/react@3.10.4
    -   @nhost/react-apollo@17.0.4

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/react@3.10.4

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

### Patch Changes

-   @nhost/react@3.10.4
-   @nhost/react-apollo@17.0.4

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/nhost-js@3.2.8
    -   @nhost/apollo@8.0.8
    -   @nhost/vue@2.9.5

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

### Patch Changes

-   d9eb906: fix: update vite and nextjs because of vulnerability
    -   @nhost/apollo@8.0.8
    -   @nhost/vue@2.9.5

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-28 13:56:36 +00:00
David Barroso
1bc1e30f5e chore (ci): send message to discord (#3317)
### **PR Type**
Enhancement


___

### **Description**
- Add Discord notifications for dashboard deployment status

- Implement success and failure notifications separately

- Include deployment details in Discord messages

- Use tsickert/discord-webhook action for notifications


___



### **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>deploy-dashboard.yaml</strong><dd><code>Implement
Discord notifications for deployment status</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.github/workflows/deploy-dashboard.yaml

<li>Added success notification step using Discord webhook<br> <li> Added
failure notification step using Discord webhook<br> <li> Both
notifications include deployment status, trigger user, and git
<br>ref<br> <li> Used different embed colors for success (green) and
failure (red)


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3317/files#diff-634642357deb8c43286f58a5b454c8f10aeab2fb9937c9cb0c4300ac84dc00cf">+28/-0</a>&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-04-28 14:37:33 +02:00
Nuno Pato
85526782f2 feat: dashboard: add additional segment events (#3313)
### **PR Type**
Enhancement


___

### **Description**
- Added Segment analytics tracking for key actions

- Implemented event tracking for project upgrades

- Added tracking for organization invites

- Included analytics for GitHub project connections

- Implemented tracking for new project creation


___



### **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>UpgradeProjectDialogContent.tsx</strong><dd><code>Add
Segment tracking for project upgrades</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/components/common/TransferOrUpgradeProjectDialog/UpgradeProjectDialogContent.tsx

<li>Imported useCurrentOrg and analytics<br> <li> Added Segment tracking
for 'Project Upgraded' event<br> <li> Included detailed project and
organization data in the event


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>PendingInvites.tsx</strong><dd><code>Implement Segment
tracking for organization invites</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/components/members/components/PendingInvites/PendingInvites.tsx

<li>Imported analytics from Segment<br> <li> Added tracking for
'Organization Invite Sent' event<br> <li> Included organization and
invitee details in the event


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>EditRepositorySettingsModal.tsx</strong><dd><code>Add
Segment tracking for GitHub project connections</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/git/common/components/EditRepositorySettingsModal/EditRepositorySettingsModal.tsx

<li>Imported analytics from Segment<br> <li> Added tracking for 'Project
Connected to GitHub' event<br> <li> Included project and repository
details in the event


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>new.tsx</strong><dd><code>Implement Segment tracking
for new project creation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/orgs/[orgSlug]/projects/new.tsx

<li>Imported analytics from Segment<br> <li> Added tracking for 'Project
Created' event<br> <li> Included project, organization, and region
details in the event


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>hungry-terms-retire.md</strong><dd><code>Add changeset
for Segment analytics feature</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/hungry-terms-retire.md

<li>Added changeset file for minor version bump<br> <li> Described
feature addition of Segment events


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3313/files#diff-3accee3677ac6171593ed474c4c867ce1d27b490b69c9fd738f1cff121791ba9">+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-04-28 11:14:51 +00:00
Russians tortured my 18yo friend Ivan bc of ukr flag in mobile phone
fad7f640de fix (examples/nextjs): typo (#3309)
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-04-28 09:58:08 +02:00
robertkasza
5ff4dd6e40 fix (packages): update storage/auth e2e config (#3306)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Update e2e configuration for hasura-auth-js and hasura-storage-js

- Modify CI workflow for package-specific Nhost CLI shutdown

- Adjust test scripts in package.json files

- Add changeset for patch updates


___



### **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>fluffy-shoes-cross.md</strong><dd><code>Add changeset
for auth and storage package updates</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/fluffy-shoes-cross.md

<li>Add new changeset file for patch updates<br> <li> Specify changes
for @nhost/hasura-storage-js and @nhost/hasura-auth-js


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ci.yaml</strong><dd><code>Update CI workflow for
package-specific Nhost CLI shutdown</code></dd></summary>
<hr>

.github/workflows/ci.yaml

<li>Add new step to stop Nhost CLI for specific packages<br> <li> Ensure
Nhost CLI stops even if previous steps fail


</details>


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

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Modify test scripts for
hasura-auth-js package</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

packages/hasura-auth-js/package.json

<li>Update ci:test script to use vite.config.e2e.json<br> <li> Remove
Nhost CLI shutdown from ci:test script


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update test script for
hasura-storage-js package</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

packages/hasura-storage-js/package.json

- Remove Nhost CLI shutdown from ci:test script


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3306/files#diff-eca15b254298d1b63d7c80b470d31e046d63ae93b1f09eb6dc3959e3a326560d">+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-04-25 18:21:09 +02:00
David BM
0bf28085b7 chore (dashboard CI): refresh hasura metadata before e2e tests (#3314) 2025-04-25 17:40:29 +02:00
Alexander Mart
b302dbd27d docs: add sveltekit quickstart (#3302)
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
Co-authored-by: Nuno Pato <nunopato@gmail.com>
2025-04-24 14:04:48 +02:00
David Barroso
50f7376c07 feat: migrate remaining mfa endpoints to go (#626)
It also fixes https://github.com/nhost/hasura-auth/issues/623

### **PR Type**
Enhancement, Tests


___

### **Description**
- Migrate remaining MFA endpoints to Go

- Add TOTP secret generation and MFA activation

- Update user MFA settings and TOTP validation

- Implement new API endpoints for MFA management


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Add new MFA-related API
endpoints and handlers</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+208/-69</a></td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Add new MFA-related types and
constants</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+31/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Add new database client
methods for MFA</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>get_mfa_totp_generate.go</strong><dd><code>Implement TOTP
secret generation endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-31d8a6383ca16daae8def9cb3198660474942a4b82c1e48ee5268c3818f1a6b1">+54/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_email_password.go</strong><dd><code>Update TOTP
check in email password signin</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-83f8d4caba884eab3c2b16c14728377aeea5dd2fe3da1cc3d37b723e00486837">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp.go</strong><dd><code>Update TOTP
validation in MFA signin</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-dfcf31b6796ba3dd8b17989bea3dddad781d3240ebb9280dac02098525a14f8a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_user_mfa.go</strong><dd><code>Implement user MFA
activation/deactivation endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-87201e793ffc4a91d768e9627a7415b0e5df9176f71b9f23e4a64b07eec78a5e">+111/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>totp.go</strong><dd><code>Enhance TOTP functionality with
secret generation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-70c35ba05eec9224b91a08bd3202c9262ed9903ea778db0ccd0ad711b04e538f">+49/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql.go</strong><dd><code>Add new SQL queries for MFA
operations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+32/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove MFA router from Express
routes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-4c1a276a826a5147689418cdbf9bde24c8326cedb30a61144fe7867bd99113ef">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove MFA router
implementation</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-540b400cec8c10f1f87c0d1ffb018396c8ab87c73a02602cf897f7b52f175da2">+0/-25</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>totp-generate.ts</strong><dd><code>Remove TOTP generation
handler</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-e947ed247ff45dd8c50b88bc5e372c8dcbc762338a5ed536dd82909346f204c6">+0/-46</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove MFA-related routes from
user router</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-14d43bc8570c6586d8a64c92ea9fe4ddd2a6fd85db68a8d0de8f7292c1476f36">+0/-18</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>mfa.ts</strong><dd><code>Remove MFA handler
implementation</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-71fe86c9e0ccbb286842501197d2550fd555c8844d2c9adaeb8b8be8e2ef8ec9">+0/-92</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql</strong><dd><code>Add new SQL queries for MFA
operations</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-c19dd96472c44a7389d4d1f72e0a1879df1e06e8e4d333ca3cb6b6dfbe3083ef">+10/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>serve.go</strong><dd><code>Add MFA TOTP issuer configuration
option</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+9/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>errors.go</strong><dd><code>Add new MFA-related error types
and handlers</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+26/-2</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>get_mfa_totp_generate_test.go</strong><dd><code>Add tests
for TOTP secret generation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-f3713ebc3b23b6469bb6dc61b17c2511b8ba2c99dde26c5a71aabb0a5ae43383">+199/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>main_test.go</strong><dd><code>Update TOTP initialization in
tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-a13f50ba7fee39bdeff8c7f63e51af45b3e837d359608a042d7e2e8d50fb8b89">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Update mock controller with
new MFA methods</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-f1b1f168b0924b023c571d6274d53defef472a872f5fee4de1c4ae78959cc327">+56/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp_test.go</strong><dd><code>Update TOTP
tests for MFA signin</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-2f07c5c0613472bcfad7967a8116602ffa8f33856de94380d50ccdbd95bec206">+8/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_user_mfa_test.go</strong><dd><code>Add tests for user
MFA activation/deactivation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-5795028fd6afc716636f4ca00cfb373dc3682a542051e7e70f9b1808ecf5f26e">+444/-0</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>workflows.go</strong><dd><code>Update session refresh token
validation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>go.mod</strong><dd><code>Update JWT library
version</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>go.sum</strong><dd><code>Update dependencies
checksums</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;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>openapi.yaml</strong><dd><code>Add new MFA endpoints to
OpenAPI specification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/626/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+69/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></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-04-23 10:16:44 +02:00
David BM
72a365c5fc fix (dashboard): correct graphql role dropdown source (#3291) 2025-04-21 18:19:09 +02:00
David Barroso
d11363a74c chore (observability): make alerts less sensitive (#3310)
### **PR Type**
Enhancement


___

### **Description**
- Increase alert sensitivity time from 5m to 15m

- Change NoData state to Alerting for most rules

- Modify execErrState to Alerting or OK

- Adjust noDataState for specific alert rules


___



### **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>rules_nhost.yaml</strong><dd><code>Adjust alert
sensitivity and error handling configurations</code></dd></summary>
<hr>

observability/grafana/rules_nhost.yaml

<li>Increased 'for' duration from 5m to 15m for multiple alerts<br> <li>
Changed 'noDataState' from NoData to Alerting for most rules<br> <li>
Modified 'execErrState' to Alerting or OK depending on the rule<br> <li>
Adjusted 'noDataState' for specific alert rules (e.g., OK to Alerting)


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3310/files#diff-27165812186176e21d13a35136e43511b837700a599d3a00c61a1f6b36c55af2">+13/-13</a>&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-04-20 13:59:31 +02:00
David BM
1bc2fabe59 chore (CI): skip CI runs on documentation change (#3307)
### **User description**
Skips CI running if we only changed under `docs/`


___

### **PR Type**
Enhancement


___

### **Description**
- Skip CI runs for changes in 'docs/' directory

- Update CI workflow configuration in GitHub Actions


___



### **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>ci.yaml</strong><dd><code>Update CI workflow to ignore
documentation changes</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.github/workflows/ci.yaml

<li>Add 'docs/**' to paths-ignore for push and pull_request events<br>
<li> Prevent CI from running on documentation-only changes


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3307/files#diff-944291df2c9c06359d37cc8833d182d705c9e8c3108e7cfe132d61a06e9133dd">+2/-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-04-16 15:35:41 +02:00
robertkasza
f8243f9434 chore (examples/svelte): update @sveltejs/kit (#3305)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Update @sveltejs/kit to version 2.20.6

- Add changeset for @nhost-examples/sveltekit patch

- Update package resolutions for security


___



### **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>neat-eggs-chew.md</strong><dd><code>Add changeset for
sveltekit example update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/neat-eggs-chew.md

<li>Add new changeset file for @nhost-examples/sveltekit<br> <li>
Specify patch update for the package<br> <li> Include description of the
change


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update @sveltejs/kit
dependency version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

examples/quickstarts/sveltekit/package.json

- Update @sveltejs/kit from 2.11.1 to 2.20.6


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add security resolution
for @sveltejs/kit</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

package.json

- Add resolution for @sveltejs/kit >= 2.20.6


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3305/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+2/-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-04-16 12:48:40 +02:00
robertkasza
d9eb90604d fix: update vite and nextjs because of vulnerability (#3303)
### **PR Type**
Bug fix


___

### **Description**
- Update Vite and Next.js versions for security

- Add new version constraints for Vite and Next.js

- Create changeset for patch updates to multiple packages


___



### **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>neat-mugs-bake.md</strong><dd><code>Add changeset for
Vite and Next.js updates</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/neat-mugs-bake.md

<li>Add new changeset file for patch updates<br> <li> List affected
packages including dashboard and examples<br> <li> Describe fix as
updating Vite and Next.js


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update dependency
version constraints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

<li>Add new version constraint for Next.js (>=14.2.26)<br> <li> Update
Vite version constraints (>=5.4.18 and >=6.2.6)<br> <li> Remove outdated
Vite version constraint


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3303/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+4/-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-04-16 09:17:12 +02:00
dependabot[bot]
7ba5584369 chore: bump Codium-ai/pr-agent from 0.27 to 0.28 (#624)
### **User description**
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.27 to 0.28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.28</h2>
<h2><a
href="https://hub.docker.com/repository/docker/codiumai/pr-agent/tags">Docker
tags</a></h2>
<p>codiumai/pr-agent:0.28
codiumai/pr-agent:0.28-github_app
codiumai/pr-agent:0.28-bitbucket-app
codiumai/pr-agent:0.28-gitlab_webhook
codiumai/pr-agent:0.28-github_action
codiumai/pr-agent:0.28-azure_devops_webhook</p>
<h2>What's Changed</h2>
<ul>
<li>chore: add bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0 by
<a
href="https://github.com/atsushi-ishibashi"><code>@​atsushi-ishibashi</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1594">qodo-ai/pr-agent#1594</a></li>
<li>docs: fix usage-guide/automations_and_usage.md in mistake link by <a
href="https://github.com/ryo-kagawa"><code>@​ryo-kagawa</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1604">qodo-ai/pr-agent#1604</a></li>
<li>docs: update model references to Claude 3.7 Sonnet and o3-mini
throug… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1607">qodo-ai/pr-agent#1607</a></li>
<li>fix: validate one-liner suggestions to prevent repeating existing
code by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1610">qodo-ai/pr-agent#1610</a></li>
<li>feat: add DeepInfra support by <a
href="https://github.com/muhammad-asn"><code>@​muhammad-asn</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1611">qodo-ai/pr-agent#1611</a></li>
<li>fix: repeat processing files to ignore by <a
href="https://github.com/congziqi77"><code>@​congziqi77</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1612">qodo-ai/pr-agent#1612</a></li>
<li>Support extended thinking for model
<code>claude-3-7-sonnet-20250219</code> by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1605">qodo-ai/pr-agent#1605</a></li>
<li>Fix default value for extended_thinking_max_output_tokens by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1614">qodo-ai/pr-agent#1614</a></li>
<li>Update improve.md by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1615">qodo-ai/pr-agent#1615</a></li>
<li>chore: update pr_reviewer_prompts.toml by <a
href="https://github.com/eltociear"><code>@​eltociear</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1626">qodo-ai/pr-agent#1626</a></li>
<li>Hl/update configs docs by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1625">qodo-ai/pr-agent#1625</a></li>
<li>docs: Update description of gitlab-webhook installation. by <a
href="https://github.com/thonic"><code>@​thonic</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1628">qodo-ai/pr-agent#1628</a></li>
<li>Update azuredevops_provider.py by <a
href="https://github.com/cdornano"><code>@​cdornano</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1636">qodo-ai/pr-agent#1636</a></li>
<li>doc: Add info about ollama context length by <a
href="https://github.com/Octoslav"><code>@​Octoslav</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1637">qodo-ai/pr-agent#1637</a></li>
<li>Adding a new tool: /help_docs by <a
href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1644">qodo-ai/pr-agent#1644</a></li>
<li>Bugfix: Incorrect git url in case of GitHub app by <a
href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1647">qodo-ai/pr-agent#1647</a></li>
<li>Update Docs: Company Codebase Overview, RAG Integration &amp;
Configuration by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1648">qodo-ai/pr-agent#1648</a></li>
<li>fix: Logging and Commenting by <a
href="https://github.com/ishaansehgal99"><code>@​ishaansehgal99</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1634">qodo-ai/pr-agent#1634</a></li>
<li>Add support for publishing comments on issues in GitHub provider by
<a href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1651">qodo-ai/pr-agent#1651</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/atsushi-ishibashi"><code>@​atsushi-ishibashi</code></a>
made their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1594">qodo-ai/pr-agent#1594</a></li>
<li><a
href="https://github.com/ryo-kagawa"><code>@​ryo-kagawa</code></a> made
their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1604">qodo-ai/pr-agent#1604</a></li>
<li><a
href="https://github.com/muhammad-asn"><code>@​muhammad-asn</code></a>
made their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1611">qodo-ai/pr-agent#1611</a></li>
<li><a
href="https://github.com/congziqi77"><code>@​congziqi77</code></a> made
their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1612">qodo-ai/pr-agent#1612</a></li>
<li><a href="https://github.com/thonic"><code>@​thonic</code></a> made
their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1628">qodo-ai/pr-agent#1628</a></li>
<li><a href="https://github.com/cdornano"><code>@​cdornano</code></a>
made their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1636">qodo-ai/pr-agent#1636</a></li>
<li><a href="https://github.com/Octoslav"><code>@​Octoslav</code></a>
made their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1637">qodo-ai/pr-agent#1637</a></li>
<li><a
href="https://github.com/sharoneyal"><code>@​sharoneyal</code></a> made
their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1644">qodo-ai/pr-agent#1644</a></li>
<li><a
href="https://github.com/ishaansehgal99"><code>@​ishaansehgal99</code></a>
made their first contribution in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1634">qodo-ai/pr-agent#1634</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/qodo-ai/pr-agent/compare/v0.27...v0.28">https://github.com/qodo-ai/pr-agent/compare/v0.27...v0.28</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7d57edf959"><code>7d57edf</code></a>
Improve help_docs documentation with clearer structure and usage
examples</li>
<li><a
href="6950b3ca6b"><code>6950b3c</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1658">#1658</a>
from qodo-ai/es/bugfix_on_help_docs_no_references_wh...</li>
<li><a
href="e422f50cfe"><code>e422f50</code></a>
Fix for bug in get_canonical_url_parts when a new issue created, without
git ...</li>
<li><a
href="66a667d509"><code>66a667d</code></a>
Update main readme file + improve help docs (<a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1653">#1653</a>)</li>
<li><a
href="482cd7c680"><code>482cd7c</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1651">#1651</a>
from qodo-ai/es/github_publish_non_pr_comment</li>
<li><a
href="991a866368"><code>991a866</code></a>
documents' link generation: Make sure prefix ends with '/'</li>
<li><a
href="fcd9416129"><code>fcd9416</code></a>
Replace Qodo Merge references with PR-Agent in Bitbucket
documentation</li>
<li><a
href="255e1d0fc1"><code>255e1d0</code></a>
Missing class member</li>
<li><a
href="7117e9fe0e"><code>7117e9f</code></a>
Github Provider: Support publishing a comment on a non pr issue</li>
<li><a
href="b42841fcc4"><code>b42841f</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1649">#1649</a>
from qodo-ai/hl/global_best_practices</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.27...v0.28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.27&new-version=0.28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Enhancement


___

### **Description**
- Update PR-Agent version from 0.27 to 0.28

- Improve CI/CD workflow with latest features


___



### **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>gen_ai_review.yaml</strong><dd><code>Bump PR-Agent
version in GitHub Actions workflow</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_ai_review.yaml

- Updated Codium-ai/pr-agent action version from 0.27 to 0.28


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/624/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-14 08:35:08 +02:00
dependabot[bot]
5bee6de6bd chore: bump cachix/install-nix-action from 30 to 31 (#620)
### **User description**
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 30 to 31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v31</h2>
<h2>What's Changed</h2>
<ul>
<li>nix: 2.24.9 -&gt; 2.25.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/218">cachix/install-nix-action#218</a></li>
<li>ci: fix latest installer tests by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/220">cachix/install-nix-action#220</a></li>
<li>ci: add ubuntu-24.04-arm to matrix by <a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
<li>nix: 2.25.2 -&gt; 2.26.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/226">cachix/install-nix-action#226</a></li>
<li>nix: 2.26.2 -&gt; 2.26.3 by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/228">cachix/install-nix-action#228</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> made
their first contribution in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">https://github.com/cachix/install-nix-action/compare/v30...v31</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="02a151ada4"><code>02a151a</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/228">#228</a>
from cachix/bump-nix</li>
<li><a
href="066004291c"><code>0660042</code></a>
nix: 2.26.2 -&gt; 2.26.3</li>
<li><a
href="e8dbd0c992"><code>e8dbd0c</code></a>
docs: update readme with latest version</li>
<li><a
href="91a0719595"><code>91a0719</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/226">#226</a>
from Mic92/nix-update</li>
<li><a
href="d81eadf041"><code>d81eadf</code></a>
nix: 2.25.2 -&gt; 2.26.2</li>
<li><a
href="3d69a1d4d2"><code>3d69a1d</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/221">#221</a>
from msgilligan/msgilligan/github-test-aarch64-linux</li>
<li><a
href="265a04a520"><code>265a04a</code></a>
GitHub test.yml: add ubuntu-24.04-arm to matrix</li>
<li><a
href="89fd1e98db"><code>89fd1e9</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/220">#220</a>
from cachix/fix-master-tests</li>
<li><a
href="a76df16350"><code>a76df16</code></a>
ci: bump nixpkgs channel</li>
<li><a
href="a49b703498"><code>a49b703</code></a>
ci: fix act test</li>
<li>Additional commits viewable in <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=30&new-version=31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>


___

### **PR Type**
Enhancement


___

### **Description**
- Update cachix/install-nix-action from v30 to v31

- Modify GitHub Actions workflows for build and check


___



### **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>wf_build_artifacts.yaml</strong><dd><code>Update Nix
installation action version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/wf_build_artifacts.yaml

- Update cachix/install-nix-action from v30 to v31


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/620/files#diff-63d6f3e2e5894df4d88cf2c82b3d0c90e7b0b7c8ca9da25a3d46f35f15270fb0">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_check.yaml</strong><dd><code>Update Nix installation
action version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/wf_check.yaml

- Update cachix/install-nix-action from v30 to v31


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/620/files#diff-c2ecea6736037ba6304681d744d612d44d7681788d2fbc58ce223cf52ecefa43">+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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-04-14 08:34:55 +02:00
Nuno Pato
cef647194d fix: dashboard: add anonid to user's metadata (#3282)
### **PR Type**
Enhancement


___

### **Description**
- Add anonymous ID to user metadata during signup

- Integrate Segment analytics for anonymous ID retrieval

- Update GitHub sign-in to include anonymous ID

- Add changeset for version bump and changelog


___



### **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>signup.tsx</strong><dd><code>Integrate anonymous ID in
signup process</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/signup.tsx

<li>Import Segment analytics<br> <li> Add state for anonymous ID<br>
<li> Fetch anonymous ID on component mount<br> <li> Include anonymous ID
in email and GitHub signup


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>tall-eggs-battle.md</strong><dd><code>Add changeset for
dashboard update</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/tall-eggs-battle.md

<li>Add changeset file for version bump<br> <li> Describe change as
adding anonid to user's metadata


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3282/files#diff-26ba0d1f688299d031611809f726356bdec0104a9264ec7dcca0757985023a58">+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-04-10 14:29:56 +00:00
robertkasza
efd68c3f92 chore (react-apollo): run e2e on preview instead of dev server (#3295)
### **PR Type**
Enhancement


___

### **Description**
- Run e2e tests on preview build instead of dev server

- Update Playwright configuration for better test reliability

- Add new script for building and previewing in one step

- Improve clean and install process with new script


___



### **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>playwright.config.ts</strong><dd><code>Update
Playwright config for preview build and improved
tracing</code></dd></summary>
<hr>

examples/react-apollo/playwright.config.ts

<li>Changed webServer command from 'pnpm dev' to 'pnpm
build:preview'<br> <li> Updated trace option from 'on-first-retry' to
'retain-on-failure'


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add build:preview script
and specify preview port</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

examples/react-apollo/package.json

<li>Added port 3000 to preview script<br> <li> Introduced new
'build:preview' script combining build and preview


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add clean:install script
for project maintenance</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

- Added new 'clean:install' script for cleaning and reinstalling


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3295/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+1/-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-04-10 15:51:05 +02:00
robertkasza
233232b06f feat (dashboard): improve upgrade project (#3257)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Introduced `TransferOrUpgradeProjectDialog` to unify transfer and
upgrade dialogs.

- Enhanced project upgrade flow with new components and logic.

- Added comprehensive tests for the new upgrade and transfer
functionalities.

- Replaced `TransferProjectDialog` with `TransferOrUpgradeProjectDialog`
across the codebase.


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Miscellaneous</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>SelectOrgAndProject.tsx</strong><dd><code>Removed unused
import statement.</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-7d86c6e5bc51696bf1aa421c920e01a1447699456c37b025bdc407050c7b5613">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>OverviewTopBar.tsx</strong><dd><code>Updated import for
`UpgradeProjectDialog`.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-560ae107ed8e458fa4b4a226b9f5c24e24b042b5f9bcea9317c78e75929faa4b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>16
files</summary><table>
<tr>
<td><strong>UpgradeToProBanner.tsx</strong><dd><code>Updated to use
`TransferOrUpgradeProjectDialog`.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-f38fc14d24ec6ee22f9a100cc473c641dcdc66284d41d030c456bf505094ed9d">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>StripeEmbeddedForm.tsx</strong><dd><code>Wrapped
`EmbeddedCheckoutProvider` with a scrollable container.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-d8e63f9bdc9c2c672a4caabd406bf77bec4e4988e716d2b9e101182a863eb495">+10/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TransferProject.tsx</strong><dd><code>Replaced
<code>TransferProjectDialog</code> with
<code>TransferOrUpgradeProjectDialog</code>.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-bb5ac90e4fcb5841e3fef912beec1b1dbe83b273eea7a9e39fb258ff0361e7e3">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>FinishOrgCreationProcess.tsx</strong><dd><code>Refactored to
use <code>useFinishOrgCreation</code> hook for dynamic status
<br>handling.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-7602855e6aaab1dd3810c866acbedd5b9eb22c271806969eb9a3435f1c76ca8d">+13/-5</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>FinishOrgCreation.tsx</strong><dd><code>Simplified
`FinishOrgCreation` component logic.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-9e3ccc4f3c0168746e53b68211d07391593712d5d74847861248cfa7da31dd7d">+4/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>TransferOrUpgradeProjectDialog.tsx</strong><dd><code>Introduced
`TransferOrUpgradeProjectDialog` component.</code>&nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-06d6ae707f06c0db49a8930a8756195899ece09f08affa44aeadedce4b208948">+105/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>TransferProjectDialogContent.tsx</strong><dd><code>Added
`TransferProjectDialogContent` for transfer logic.</code>&nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-3f66f2e8af0175d1c3f9d4940b8dc965fefa18967c8f4977739ac73000708763">+100/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>TransferProjectForm.tsx</strong><dd><code>Added
`TransferProjectForm` for organization selection and
transfer.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-3324c79d8b4d48777467132ba0f13a95d4b0f1a9fbb4df9fd7f67735ac40cbbd">+186/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>UpgradeProjectDialogContent.tsx</strong><dd><code>Added
`UpgradeProjectDialogContent` for project upgrade flow.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-ced98d2b8b0e83e41fd9bd569a6dd3fb5c4013861d3352628e63abe0c285d2ba">+96/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Exported
`TransferOrUpgradeProjectDialog`.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-bd61908ca8ab41f1a88cdcc3bafe4264b1e8120d7f65ff64f158631dd4e65a58">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>NotificationsTray.tsx</strong><dd><code>Added router
readiness check in `NotificationsTray`.</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-8b559ee1d3176203e8a4e1588924d57944d09d792117ed578b27cd5401ee5d4f">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useFinishOrgCreation.ts</strong><dd><code>Added router
readiness check to `useFinishOrgCreation`.</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-3b8bf7608ab36d8ab0df895e400f0d2d9e29fad2055b40b33d8d9912a27c99c3">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationPaused.tsx</strong><dd><code>Replaced
<code>TransferProjectDialog</code> with
<code>TransferOrUpgradeProjectDialog</code>.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-14afdf5ac20f058c26563a6992a3751f11cf173eec27206001262b5d1b3b979f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>UpgradeNotification.tsx</strong><dd><code>Updated to use
`TransferOrUpgradeProjectDialog`.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-f712e65a6e88f2731fc5597117f716594311087f8090e3e8f5f76e1a67c95188">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>UpgradeProjectDialog.tsx</strong><dd><code>Updated to use
`TransferOrUpgradeProjectDialog` for upgrades.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-7bfab4ad088dbc503c1304f5620e22e02f70602bf14ba6b495969b882b2eb30e">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>verify.tsx</strong><dd><code>Refactored to use
`FinishOrgCreationProcess` with hooks.</code>&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-5fa0ea2519bed6649a8aa98826526945868bd7a925c5ce5edb3fd14e81273947">+1/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>

<td><strong>TransferOrUpgradeProjectDialog.test.tsx</strong><dd><code>Added
tests for `TransferOrUpgradeProjectDialog`.</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-1b274953c536fcd901f72765ab134a34641442655988bde5595f63265a9e7ce9">+155/-12</a></td>

</tr>

<tr>
<td><strong>NotificationsTray.test.tsx</strong><dd><code>Added tests for
router readiness in `NotificationsTray`.</code>&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-727f6debec6a102557407e55c56363e0c75486e30a732158f85c81ada892f77c">+39/-4</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Cleanup</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>TransferProjectDialog.tsx</strong><dd><code>Removed
deprecated `TransferProjectDialog`.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-b68d4641a67e07a8bf8c14e1f705059c564e1bca53e591783581af27a488d86e">+0/-306</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Removed export for deprecated
`TransferProjectDialog`.</code>&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-ed023a2c08c77e3693789305cf9b9f2cd871090acf7b0775c7d7434903710c42">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>tame-planes-sleep.md</strong><dd><code>Added changeset for
project upgrade dialog improvements.</code>&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3257/files#diff-c83c4e28de9a00c1ee2cb4ad9867d2c42415c01c80e990205c351e6f5c8a6f83">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-04-10 15:15:25 +02:00
David Barroso
5e962300f6 fix (docs): fixing mintlify breaking our docs (#3297) 2025-04-10 13:23:31 +02:00
Nuno Pato
048b3389e6 chore: docs: add segment analytics (#3294)
### **PR Type**
Enhancement


___

### **Description**
- Added Segment analytics integration to documentation

- Configured Segment key in docs.json file


___



### **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>docs.json</strong><dd><code>Configure Segment analytics
in docs.json</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

docs/docs.json

<li>Added 'integrations' object with Segment configuration<br> <li>
Included Segment API key for analytics tracking


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3294/files#diff-873ce17c654718debe2fe308a2f2279bde8663686423c51f97fab2dd0722b8d9">+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-04-08 12:17:05 +00:00
github-actions[bot]
be8cd6c3a6 chore: update versions (#3277)
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-auth-js@2.11.0

### Minor Changes

-   d26b6b8: fix: update broadcasted session directly

## @nhost/apollo@8.0.7

### Patch Changes

-   @nhost/nhost-js@3.2.7

## @nhost/react-apollo@17.0.3

### Patch Changes

-   @nhost/apollo@8.0.7
-   @nhost/react@3.10.3

## @nhost/react-urql@14.0.3

### Patch Changes

-   @nhost/react@3.10.3

## @nhost/nextjs@2.2.6

### Patch Changes

-   @nhost/react@3.10.3

## @nhost/nhost-js@3.2.7

### Patch Changes

-   Updated dependencies [d26b6b8]
    -   @nhost/hasura-auth-js@2.11.0

## @nhost/react@3.10.3

### Patch Changes

-   @nhost/nhost-js@3.2.7

## @nhost/vue@2.9.4

### Patch Changes

-   @nhost/nhost-js@3.2.7

## @nhost/dashboard@2.27.0

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities
- 4fd176b: chore: re-add user event ci tests, updated sveltekit example
tests to e2e suite

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
- 0420e4f: fix (dashboard): Display the selected date's month in the
datetime picker component
    -   @nhost/react-apollo@17.0.3
    -   @nhost/nextjs@2.2.6

## @nhost/docs@2.30.0

### Minor Changes

-   38e7e9d: fix: remove community as it isn't ready

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/react@3.10.3
    -   @nhost/react-apollo@17.0.3

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/react@3.10.3

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/react@3.10.3
    -   @nhost/react-urql@14.0.3

## @nhost-examples/sveltekit@0.7.0

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities
- 4fd176b: chore: re-add user event ci tests, updated sveltekit example
tests to e2e suite

### Patch Changes

-   b89500d: fix: use nhost-js version from the workspace
-   a1333df: fix: update vite because of vulnerability
    -   @nhost/nhost-js@3.2.7

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities
-   25f07a3: fix: update versions

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/react@3.10.3
    -   @nhost/react-apollo@17.0.3

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/react@3.10.3

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/nhost-js@3.2.7
    -   @nhost/apollo@8.0.7
    -   @nhost/vue@2.9.4

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

### Minor Changes

- 013e1c1: fix: update vite and image-size dependencies to address
security audit vulnerabilities

### Patch Changes

-   a1333df: fix: update vite because of vulnerability
    -   @nhost/apollo@8.0.7
    -   @nhost/vue@2.9.4

## @nhost-examples/cli@0.3.20

### Patch Changes

-   @nhost/nhost-js@3.2.7

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

### Patch Changes

-   @nhost/nhost-js@3.2.7

## @nhost-examples/nextjs@0.4.6

### Patch Changes

-   @nhost/react@3.10.3
-   @nhost/react-apollo@17.0.3
-   @nhost/nextjs@2.2.6

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

### Patch Changes

-   @nhost/nhost-js@3.2.7

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

### Patch Changes

-   @nhost/nhost-js@3.2.7

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

### Patch Changes

-   @nhost/react@3.10.3
-   @nhost/react-apollo@17.0.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-08 13:52:27 +02:00
David Barroso
b89500d175 chore (workspaces): fixes to the workspace (#3287)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Update @nhost/nhost-js dependency to use workspace version

- Modify pnpm-workspace.yaml to include more examples

- Exclude specific templates from workspace

- Add changeset for @nhost-examples/sveltekit patch


___



### **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>late-ghosts-taste.md</strong><dd><code>Add changeset
for SvelteKit example patch</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/late-ghosts-taste.md

<li>Add new changeset file for @nhost-examples/sveltekit<br> <li>
Specify patch update for using nhost-js from workspace


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update nhost-js
dependency to workspace version</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

examples/quickstarts/sveltekit/package.json

- Update @nhost/nhost-js dependency to use workspace version


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>pnpm-workspace.yaml</strong><dd><code>Refine workspace
package inclusions and exclusions</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

pnpm-workspace.yaml

<li>Change 'examples/*' to 'examples/**' for broader inclusion<br> <li>
Exclude CRA and React Native templates from workspace


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3287/files#diff-18ae0a0fab29a7db7aded913fd05f30a2c8f6c104fadae86c9d217091709794c">+3/-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>

Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
2025-04-08 12:13:59 +02:00
David BM
013e1c1d70 fix (ci lint): update vite and image-size dependencies to address security audit vulnerabilities (#3293)
### **User description**
Addresses advisories:
https://github.com/advisories/GHSA-m5qc-5hw7-8vg7
https://github.com/advisories/GHSA-xcj6-pq6g-qj4x


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Update Vite to address security vulnerabilities

- Update image-size dependency for security

- Add changeset for version bumps

- Update package resolutions for security fixes


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>flat-suits-join.md</strong><dd><code>Add changeset for
version bumps</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-985f5074afc6182f003fda21514c3398427504e76a81e28b730920c5cf2b420e">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-83675898dc6ed88838763232d022f6e100e07d71681cc8a1f02aee99ee3f229b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-9fb3a23f389ab1d192d7e018d2acbe512bd8792278662101401caa98692735db">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-cb7094614884e8cd2c8fb67dadedb1887c46c31b888840def0b7042273bfbb28">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-6288951fff74ec246c9cc023b7b7e3e9aad31423891bc4ea25b5d84a5f5b061f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-d95dc3391741287366ea2e61f70e9ccc64452e0d22b1db91d6bf524f5aa4331c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-8a3e5ed0f618f15211c31f700e0da998e2eae58f60353624b7a7e637bd63b153">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-fc4298d3512fdd9a3d871f9f182fe871c8beccd1580f864a271ddfb32005feef">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite dependency
version</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-85166d1137e29a5275f991e1e94a0c9d5b83ac7504463ba76f9187b2b750c895">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update Vite and image-size
dependencies</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3293/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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>

---------

Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
2025-04-08 09:45:49 +02:00
David BM
4fd176bce2 chore (ci): re-add user event tests (#3288)
### **PR Type**
Tests, Enhancement


___

### **Description**
- Reintroduce user event tests in CI

- Update SvelteKit example tests to e2e suite

- Refactor TestUserEvent class for improved testing

- Add new tests for database and backup features


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>DateTimePicker.test.tsx</strong><dd><code>Add comprehensive
tests for DateTimePicker component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-c7076012eb33d6f60049710638b5ad19c2f310b8c250c79f1905be7e0a30b00a">+177/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>TimePicker.test.tsx</strong><dd><code>Update TimePicker
tests to use TestUserEvent</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-784f69003ebbc9e39837b920007cef14125a5fc48bb9114226820bcb2b0827b0">+6/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>TransferProjectDialog.test.tsx</strong><dd><code>Add tests
for TransferProjectDialog component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-d4ebdb8af76a7c9e73606708718c3448445545259ad553d73b6d322408e3eb8c">+234/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ImportBackupTabContent.test.tsx</strong><dd><code>Add tests
for ImportBackupTabContent component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-753e5e6735a2d612b6ccc6617c053017ba591a763182fa28a8fc302731c3f347">+267/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DatabasePiTRSettings.test.tsx</strong><dd><code>Add tests
for DatabasePiTRSettings component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-85d1f82a571b56469eab40dcc164fdd1e107fba79611ddd5cca7c191fe5117b4">+188/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ResourcesForm.test.tsx</strong><dd><code>Update
ResourcesForm tests to use TestUserEvent</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-8828db70c080be6fc19f88059b08587584f1c23c9159092d6b186ca82a1943aa">+60/-55</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>resourceSettingsQuery.ts</strong><dd><code>Update
resourcesAvailableQuery mock data</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-49b3a2a24ead48f97ace0b90f1ecaf4d4edbdef17109e29f5101016515e5946a">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>testUtils.tsx</strong><dd><code>Refactor TestUserEvent class
and remove utility functions</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-78f29250407edf853a353b48242d3cee59aa5724f38a60bb23bebdfc1ea2f9b5">+35/-18</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Update SvelteKit example test
script to e2e</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-6288951fff74ec246c9cc023b7b7e3e9aad31423891bc4ea25b5d84a5f5b061f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>nasty-cherries-cover.md</strong><dd><code>Add changeset for
user event CI tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-653e520d91e00e8c62155076a5acfb2a606381f63c4c87b42ac70d23e7c97a01">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td><strong>PointInTimeBackupInfo.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3288/files#diff-3980415ca79bf039abb469281fff9b1dc1de0a1ef52b4044d8c6f529538b6edf">+356/-0</a>&nbsp;
</td>

</tr>
</table></details></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-04-07 17:15:33 +02:00
David Barroso
d26b6b848d chore (auth-js): add missing changeset (#3286)
### **PR Type**
Enhancement


___

### **Description**
- Update broadcasted session directly in @nhost/hasura-auth-js


___



### **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>honest-countries-melt.md</strong><dd><code>Add
changeset for session broadcast update</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/honest-countries-melt.md

<li>Added changeset file for @nhost/hasura-auth-js<br> <li> Specified
minor version bump<br> <li> Described fix for updating broadcasted
session directly


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3286/files#diff-a9bbe8d89f97fb5a46896d2cf1e4fd059d55360261ce3bc37b34fd54bd246076">+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-04-04 13:28:23 +02:00
David Barroso
3df7ca2a33 fix (hasura-auth-js): update broadcasted session directly (#3284)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Update broadcasted session with full data

- Improve cross-tab synchronization in Hasura Auth JS

- Enhance session update mechanism for better reliability

- Fix potential issues with token comparison and updates


___



### **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>internal-client.ts</strong><dd><code>Improve cross-tab
session synchronization</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

packages/hasura-auth-js/src/internal-client.ts

<li>Changed 'broadcast_token' to 'broadcast_session'<br> <li> Updated
session data handling in message listener<br> <li> Implemented direct
SESSION_UPDATE event with full session data<br> <li> Added null check
for context in token comparison


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>machine.ts</strong><dd><code>Enhance session
broadcasting with comprehensive data</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

packages/hasura-auth-js/src/machines/authentication/machine.ts

<li>Updated broadcastToken function to send full session data<br> <li>
Changed message type from 'broadcast_token' to 'broadcast_session'<br>
<li> Added accessToken, user, expiresAt, and expiresInSeconds to payload


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3284/files#diff-a8fdfee087ad5a72ea0a64667e2a0c7f25baa84eaaf73ebfee3f5a5a1b7584d1">+7/-4</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-04-04 13:16:36 +02:00
David Barroso
38e7e9deee chore (docs): remove community as it isn't ready (#3280)
### **PR Type**
Documentation


___

### **Description**
- Remove community section from documentation

- Delete Code of Conduct and Getting Involved pages

- Update docs.json to reflect removed community content


___



### **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>friendly-chairs-argue.md</strong><dd><code>Add
changeset for community section removal</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/friendly-chairs-argue.md

<li>Add changeset file for minor version bump<br> <li> Include fix note
about removing community section


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>coc.mdx</strong><dd><code>Remove Code of Conduct
page</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; </dd></summary>
<hr>

docs/community/coc.mdx

- Delete entire Code of Conduct page


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>getting-involved.mdx</strong><dd><code>Remove Getting
Involved page</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; </dd></summary>
<hr>

docs/community/getting-involved.mdx

- Delete entire Getting Involved page


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3280/files#diff-4c15a93e9b63664bed77a875378d805efc8dc787bc0e1d6a6f413a376c5e6983">+0/-57</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>docs.json</strong><dd><code>Update docs.json to remove
community section</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/docs.json

- Remove "Community" tab and its associated pages


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3280/files#diff-873ce17c654718debe2fe308a2f2279bde8663686423c51f97fab2dd0722b8d9">+0/-5</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-04-04 08:49:03 +02:00
David Barroso
25f07a3763 chore (examples/react-apollo): update versions (#3281)
### **PR Type**
Enhancement


___

### **Description**
- Update Hasura, Auth, Postgres, and Storage versions

- Upgrade Node.js version for functions to 22

- Bump @nhost-examples/react-apollo package version


___



### **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>spicy-sloths-cover.md</strong><dd><code>Add changeset
for React Apollo example version update</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/spicy-sloths-cover.md

<li>Add changeset for @nhost-examples/react-apollo minor version
bump<br> <li> Include fix note for version updates


</details>


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

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>nhost.toml</strong><dd><code>Update core component
versions in nhost.toml</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

examples/react-apollo/nhost/nhost.toml

<li>Update Hasura version to v2.46.0-ce<br> <li> Upgrade Node.js version
for functions to 22<br> <li> Update Auth version to 0.38.0<br> <li>
Update Postgres version to 16.6-20250311-1<br> <li> Update Storage
version to 0.7.1


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3281/files#diff-268d6c8dddd6990d60d62c1c923955c4e0e7549a80f0f5856192f889378416a0">+6/-6</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-04-04 08:48:46 +02:00
David BM
38c3db4a9e fix (ci): dashboard unittests (#3285)
### **PR Type**
Tests


___

### **Description**
- Remove userEvent-based tests

- Delete unused test files

- Update ResourcesForm test to use userEvent


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>DateTimePicker.test.tsx</strong><dd><code>Remove
DateTimePicker test 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;
</dd></summary>
<hr>

dashboard/src/components/common/DateTimePicker/DateTimePicker.test.tsx

- Removed entire test file


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>TransferProjectDialog.test.tsx</strong><dd><code>Remove
TransferProjectDialog test file</code>&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/orgs/components/common/TransferProjectDialog/TransferProjectDialog.test.tsx

- Removed entire test file


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>ImportBackupTabContent.test.tsx</strong><dd><code>Remove
ImportBackupTabContent test file</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/backups/components/ImportBackupTabContent/ImportBackupTabContent.test.tsx

- Removed entire test file


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3285/files#diff-753e5e6735a2d612b6ccc6617c053017ba591a763182fa28a8fc302731c3f347">+0/-267</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>PointInTimeBackupInfo.test.tsx</strong><dd><code>Remove
PointInTimeBackupInfo test file</code>&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/orgs/projects/backups/components/common/PointInTimeBackupInfo/PointInTimeBackupInfo.test.tsx

- Removed entire test file


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3285/files#diff-3980415ca79bf039abb469281fff9b1dc1de0a1ef52b4044d8c6f529538b6edf">+0/-357</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>DatabasePiTRSettings.test.tsx</strong><dd><code>Remove
DatabasePiTRSettings test file</code>&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/orgs/projects/database/settings/components/DatabasePiTRSettings/DatabasePiTRSettings.test.tsx

- Removed entire test file


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3285/files#diff-85d1f82a571b56469eab40dcc164fdd1e107fba79611ddd5cca7c191fe5117b4">+0/-189</a>&nbsp;
</td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ResourcesForm.test.tsx</strong><dd><code>Update
ResourcesForm tests to use userEvent</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>


dashboard/src/features/orgs/projects/resources/settings/components/ResourcesForm/ResourcesForm.test.tsx

<li>Imported userEvent from '@testing-library/user-event'<br> <li>
Updated tests to use userEvent instead of custom click functions<br>
<li> Moved vCPU and Memory ratio validation test


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3285/files#diff-8828db70c080be6fc19f88059b08587584f1c23c9159092d6b186ca82a1943aa">+52/-48</a>&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-04-03 16:43:00 +02:00
robertkasza
a1333df2a1 fix: update vite because of vulnerability (#3283)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Update Vite to address security vulnerability

- Upgrade dependencies in Vue examples

- Add 'type: module' to Vue quickstart package

- Update resolutions for Vite versions


___



### **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>stale-horses-run.md</strong><dd><code>Add changeset for
Vite vulnerability fix</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/stale-horses-run.md

<li>Add new changeset file<br> <li> List affected packages for patch
update<br> <li> Describe fix for Vite vulnerability


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3283/files#diff-79e66d2654e3803067439855123d20d162193a019ecf68b5b45ee1d0e344949d">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update sass dependency
in Vue Apollo example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

examples/vue-apollo/package.json

- Update sass dependency from 1.32.0 to 1.86.1


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update package
configuration and dependencies in Vue quickstart</code></dd></summary>
<hr>

examples/vue-quickstart/package.json

<li>Add "type": "module" to package.json<br> <li> Update @unocss/reset
from 0.33.5 to 66.1.0-beta.8<br> <li> Update unocss from 0.33.5 to
66.1.0-beta.8


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3283/files#diff-85166d1137e29a5275f991e1e94a0c9d5b83ac7504463ba76f9187b2b750c895">+3/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add Vite version
resolutions to address vulnerabilities</code>&nbsp; &nbsp;
</dd></summary>
<hr>

package.json

- Add resolutions for Vite versions 5.4.16 and 6.2.4


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3283/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+3/-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-04-02 17:23:26 +02:00
David Barroso
c1b4d5abc5 feat: migrate /signin/mfa/totp to go (#622)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Migrate /signin/mfa/totp endpoint to Go

- Add TOTP validation functionality

- Update API schema for MFA TOTP

- Implement unit tests for new endpoint


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Add TOTP signin endpoint and
response handlers</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+140/-68</a></td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Update API types for TOTP
signin</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+15/-5</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>controller.go</strong><dd><code>Add TOTP functionality to
Controller struct</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp.go</strong><dd><code>Implement TOTP
signin endpoint handler</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-dfcf31b6796ba3dd8b17989bea3dddad781d3240ebb9280dac02098525a14f8a">+50/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>totp.go</strong><dd><code>Implement TOTP validation
functionality</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-70c35ba05eec9224b91a08bd3202c9262ed9903ea778db0ccd0ad711b04e538f">+38/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove TOTP signin route from
TypeScript</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-26afd2e4ccfcac5d8a5fdbd1312ac77bfa6d2269f06b7180b4ca75c8d523d642">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove TOTP export from
TypeScript</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></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-74962d50d5d71f23f68d4d48f168dc585e704abd4f549f4f4ff169495cebaa70">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>sms.ts</strong><dd><code>Remove SMS MFA handler from
TypeScript</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-bf8048ebbed7dd50c2ebf62217ca47d0744b781a0d8c893e574fa9b7c736eb26">+0/-33</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>totp.ts</strong><dd><code>Remove TOTP handler from
TypeScript</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-c7a4205191155c458df838ac6b59941ef359c583b76cb3e7a1fa1c8bf747cf24">+0/-58</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>config.go</strong><dd><code>Add MFA configuration
option</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-6ed50c9d309f6e7cf03742253995dfc65ae67702ae9c4aeb650b24a9b87cf377">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>serve.go</strong><dd><code>Add MFA flag and update
controller initialization</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+16/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>config.go</strong><dd><code>Add MfaEnabled field to Config
struct</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-77fe34a234b413cd5f46aa02ee1cb93864fc387e765cd7dd1a54efd7ac9a4eb0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>errors.go</strong><dd><code>Add new error types for
TOTP</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+22/-1</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>main_test.go</strong><dd><code>Update test utilities for
TOTP support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-a13f50ba7fee39bdeff8c7f63e51af45b3e837d359608a042d7e2e8d50fb8b89">+14/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_mfa_totp_test.go</strong><dd><code>Add
comprehensive tests for TOTP signin</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-2f07c5c0613472bcfad7967a8116602ffa8f33856de94380d50ccdbd95bec206">+376/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>validator_test.go</strong><dd><code>Update test
configuration for MFA</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-3f42f5f887ad54ac2f169b2629a4d17be0917e55ca60bfac885300953c8cd5f2">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>go.mod</strong><dd><code>Add OTP library
dependency</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>go.sum</strong><dd><code>Update dependency
checksums</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>openapi.yaml</strong><dd><code>Update OpenAPI schema for
TOTP signin</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/622/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+43/-8</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></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-04-01 16:38:35 +02:00
robertkasza
0420e4fda4 fix (dashboard): display the selected date's month in the datetime picker component (#3276)
### **PR Type**
Bug fix


___

### **Description**
- Fix datetime picker to display selected date's month

- Add defaultMonth prop to Calendar component

- Update changeset for @nhost/dashboard package


___



### **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>calendar.tsx</strong><dd><code>Set default month in
Calendar component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/src/components/ui/v3/calendar.tsx

- Added `defaultMonth={props.selected}` to Calendar component


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>stupid-sloths-poke.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/stupid-sloths-poke.md

<li>Added changeset file for @nhost/dashboard package<br> <li> Described
fix for datetime picker component


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3276/files#diff-4f6398b11015521b2039034f4ae61cd1ac5870421f1a52ddbf11f209aa141230">+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-04-01 14:42:08 +02:00
github-actions[bot]
97f6642c43 chore: update versions (#3256)
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.26.0

### Minor Changes

-   7b9cdf1: chore: remove legacy workspaces
-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

## @nhost-examples/sveltekit@0.6.0

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

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

### Minor Changes

-   1c4f321: fix: update vite to fix audit vulnerabilities

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-04-01 09:50:28 +02:00
David Barroso
69c1ffa766 feat (docs): overhaul structure (#3254)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Restructured docs navigation and content

- Updated links and paths throughout docs

- Refreshed images and examples in guides

- Added new content for AI, Auth, and Run


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15
files</summary><table>
<tr>
<td><strong>docs.json</strong><dd><code>Restructure navigation and add
new sections</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-873ce17c654718debe2fe308a2f2279bde8663686423c51f97fab2dd0722b8d9">+616/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>welcome.mdx</strong><dd><code>Add new welcome page with
getting started links</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b35cb8e6a6201730c2d95103d1275186d72e727686bfd6470256c0c30137a761">+65/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add new getting started
overview page</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-8c9b35da559a5de5fe14ee078573e8d487453e26ed760c03ffd7f0ad476ca24d">+88/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add new products overview
page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-745a45fa3dbe67784dd921e50865c7ef33fdc6488cff1ccc75d9db524799d8b3">+81/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add new platform overview
page</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-63ed954170e482e58b02938bcf8ab3c5b9b76b1a37b23b521cd88de2685ab566">+46/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Update AI overview with new
content and links</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e36c2139a3deb3ca81742e73df8ce981aa4502fcb3713832636088eda8f120fd">+10/-10</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add new Auth overview
page</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-fcb8a858a73ee17bb801d63453716d58b940d7b1e51f48c5fb184e34971866f2">+49/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Update Database overview with
new content</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-542ffbd4d75869cef7479dbc59a2c7c67272879b4f219488193794567b545351">+8/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Update Run overview with new
content and links</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-ca49842af7e87c264e3ce8c19f4df657890fa0965cc188dbffafcd6ced1c526c">+11/-11</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>overview.mdx</strong><dd><code>Add new Cloud overview
page</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-32f53230fbf8b84f6a60dbf37568f8a4ea4bcab6f2e00e4357cd3b7f4c50cb55">+70/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>style.css</strong><dd><code>Add new styles for welcome
page</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4dde236d1a1b6f7a24be281ce9e8212368612d66a631fa592bfe18653f57c601">+80/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>echo.ts</strong><dd><code>Add echo function
example</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-95b428813572cd2a2abcaf0c6e243622d757860c22f170c82126e5d2cbb269f0">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>email-confirm-change.tsx</strong><dd><code>Add email confirm
change template</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-34aea348d369ef146295ec5c36c6df0fde8262277b93b98d7d9f4633092dc195">+129/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>signin-passwordless.tsx</strong><dd><code>Add signin
passwordless email template</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2d67959219d5979cf79921d4e8a86e16cceb46cd1e909a1783b68d27a85a0998">+127/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>email-verify.tsx</strong><dd><code>Add email verify
template</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-139c6d5e04e5f6d2ce2c8e08a513a9830752fd9baff2aab415c9e34b0cee9918">+127/-0</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>2 files</summary><table>
<tr>
<td><strong>docker-compose.yaml</strong><dd><code>Update Docker Compose
configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-47a924f5ea105a2a42b2c421901d43cf1f834a94be0c2f2f868d29dd8990b060">+481/-174</a></td>

</tr>

<tr>
<td><strong>.env.example</strong><dd><code>Update environment variables
example</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-08ca7f9ad9d499c71a30703d1bb00c4c599646480cfcc311972bfaa654530c45">+13/-25</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>README.md</strong><dd><code>Update Docker Compose example
README</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-34955300bc0ac9daa466c28e7aa59683b9b0c89e16344cf0544772acfb971b8f">+184/-23</a></td>

</tr>

<tr>
<td><strong>README.md</strong><dd><code>Update main README with new doc
links</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5">+14/-14</a>&nbsp;
</td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>101 files</summary><table>
<tr>
  <td><strong>CONTRIBUTING.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-eca12c0a30e25b4b46522ebf89465a03ba72a03f540796c979137931d8f92055">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DEVELOPERS.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-bd017515eb79a7fb7569b1d15e8963ea380123d4fdf779978dd4b3ab7500fd10">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>README.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-c15729e6c35a283a4b0eda60a991303b6c36c03903ba42dbf832bb8d0daa1a1a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AuthenticatedLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2d69ccffd267658f76d77a864cdece93fc222e08f6025955795fc6f4697f60e7">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>docs.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-ba8b2e40409d3782ac444d6c60d7f478772311cb211acd1c24c791937e47f1c6">+7/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SubscriptionPlan.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2a5f070869055286b669e382b18d656935752803b9a1ef13390ac028c2a48ac4">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SettingsLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-aa21cda513a125d8cefc5e7b5e1c755128aa904657350abf0ce1cde21e27ca75">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AllowedEmailSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f4b2730b26266319aa6e705012da5bd20774881bc473411bd8b1619bbd0646d1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AllowedRedirectURLsSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-5c4c3714c99421265e1c35dd4300423407f758555eab0622d1f3bf12e7eb13ce">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AppleProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2e75c4eada80cf228714593e2cd315108b5d10ff7f20bd91e8bc884f571f6f85">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BlockedEmailSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3a99b1db51b5654043151df4d77ad1ec369dd6d475e3261f80bb52e55dd81296">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ClientURLSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-fd60e1f63909e5cf5a57ca7cb9eb5c8577683b638e94185cc840ce8fc6ad0d39">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DisableNewUsersSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-60f6b3603e0467216d9633f4f92879a37416e202b18f0a4da0171332492fb6cf">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DisableSignUpsSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-13b3734c8b8aed2e159affbfc9997846e85e2096e739479c72a09e9101d31faf">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DiscordProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-640c83d25085fd13cac559d4b567e2b14f0ef77e003d3b0a6fd4c35b2b5177f9">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>EmailAndPasswordSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b4c8b368defc138ebbf777af773d0a98d00f7130e4f795b0fd83cf934bbf9a4a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>FacebookProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-5103b8085b43ba8f884429a70076ac8707a1510f06d62b5bf5bd08380ef4385c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>GitHubProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-438abe40d1c5ea84110c526038042a65d4c960a87f0371c23fc5d493350c5bd7">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>GoogleProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3c17bcfb21f6d2066f4727df5d059cfe871a5e1cf5efede5fcdf97d86ce17dbd">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>GravatarSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e6d30e32ab062fd6060282190a4b28d86cd7aaf1a08fe3090056759ea43cfc02">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>LinkedInProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-1efc0012f8c04ff4d54a29d20c0bc81422bcb5d689f4141c52179d7e8c054a7f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MFASettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-edb42fdfa300aae0bea103b9b4cc379e3d5c49ed00646a30673473660982904f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MagicLinkSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-d698ac461b405af3109f38cf74a81eb919193c28a62fa8abda7f62ba573a38e8">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SMSSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-beffd7762c6b4f12ba0edd9e524fe07c33062f5d8c12d3783ae2bb42e1380f64">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SpotifyProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-93ba8b83aa965db9730f5f4aef9da2db8279a924a3812fc9e6f880173fa4235c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>TwitchProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-0f30d19f5b40424b59a85450a33f870a1a3e7b844e36e2ff7a92ce6c35a441c1">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>WebAuthnSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-d34c84f3b66fa2b843540e1829d3c827e38c46d5e663b8dcad11dac964a34080">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>WorkOsProviderSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f0cd2c2e6badf59f882d564bf06617345cb4243bc699af4d02420ec2aefb166e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PointInTimeBackupInfo.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-35be453f6605231bcee5b7f7f78564eb7aa2be723f5169509f9dddfe84477fe6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DatabasePiTRSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-7a638c446af8419249770dc8da1ea522f950163b1d0045020927216c38db8cec">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>EnvironmentVariableSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-621bb42cb9fe0a763d30e738ab075af2784e8538e5ed7ac6ff1aa132d1a38042">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SystemEnvironmentVariableSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b952daa2a34e49a14c5a471477fa2d50583091e420d88a3b941503b092d18e5c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>EditRepositoryAndBranchSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e19e36c0830816cdd4d73cd058b91295bbfcbe65c37c36fa9a87e9c1f2e3b7ef">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BaseDirectorySettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-50bcccdf949a19ce69fa86acdd63b5291fa2beaba07191a62c87d40ea5b94e88">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentBranchSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-d8fc80cc734f593c686f873536856bf9103efb1115ca865709bbeb7bd940895e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>GitConnectionSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-9e7a97afc3500aa2f4b28bdf4acb135925d92a6a595e16a3808b0b90ecc6be58">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>JWTSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4bc7ce8b3f6e45940e5137c199d24b7a62cf3f804bf9c51b34a5f1168567ef25">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ContactPointsSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-50a024995bad7b420fd717104a1584009e9fa44c508889dd125155f33d99f48e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MetricsSMTPSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-db01779fdfdece601aa83a1a2c256e65514602344a8556afd5832d32e465bc65">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MetricsSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-957bb404fee8d18aa45af9e878837d311b69d9805ac16fe8d2c0e9d3b431e906">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>features.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-036778e07a1cdf33b7d90d8110f75338f8cd6870cc68bb75cff0c880318cd92d">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>frameworks.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3833ff9ca6b5f1020384672b9de38149de400c57beaeb65ea255475ba8ce7da3">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PermissionVariableSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-ffbd1a0083e64318b68922362b6392090e24facc2a6476dc31e54e988a7599f6">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ResourcesFormFooter.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-035d56050da913a9ab98c730bb88b34c734149053674204b86bd798d79f81371">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ServiceResourcesFormFragment.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-9b9bf7e4f4e4dd34502e1b636c9f9aabbb20defe43595a79aa7e3f7d89750029">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>RoleSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4cd13b62487b2de616d26d895ce4bb3afc7380abf9f3831ef2b949d073802a1f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ComputeFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b5600bae05b535d54dc04b2a847b6402b10575efd87a0e7098796f0f9ae96d51">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>HealthCheckFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-9287c48c51c8a48a4b4aedcdc195cd9c8c79d3b3e2072765608081bc341f7fba">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ImageField.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-6f618d85f2ca9a85b2a754f45e7b7e7803317be7e5dfd0e05bbee87c5bd1f116">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PortsFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-75c4254c31fe6addb187b5d122dd1fa171c1a8875c0152a6c1b2a05257c61d4c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>custom-domains.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e35b13396a4aa0b96e35dd7a0b1a27d188c0d45fe20cbda99e2fd59b83da5574">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>rate-limiting.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f31e44eb689a0e65e60f6eb2701f7adf283582fa5014c8727dc4922ecbd8c657">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>snippet-example.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-5fdce31e426151efa036ecdc78f6842c3bcd644a3d7658b1c753ee80c55d3cc8">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>coc.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-dc80329f722e73bc46ee76902de782b4f696a4be0224658cbbb0a70127cb7627">+128/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>getting-involved.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4c15a93e9b63664bed77a875378d805efc8dc787bc0e1d6a6f413a376c5e6983">+57/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>commands.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2053eb5138f4c468b9aa94e6fd7302ad2f577839be107741f265ae1b2d9bfcaa">+0/-158</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>getting-started.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-05cc8d760dce63f257bee91e9c0293424a63e0ed210d26c7bca78bc3a3d5d763">+0/-87</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-dfcca51e047037e649bbf76e68ab3aa9161a85c1bd25cf385acc5e764bea0cd3">+0/-32</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>nextjs.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-291e724f8e8aadb8d126a30590af172b9b82fe187407c83cfc0673d76efd1188">+3/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>react.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-fdf7ec55eee7c46bd8f83f8bf10066a136d21181bd6a04d513ae4c3bfaec1dc5">+7/-21</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>reactnative.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-bac475908ec022811c05fccec3d0eae805b25419b65a5d2537d70c606415d586">+14/-28</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>vue.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-1fee09fc68c4d33cea15dcb726c3e3671fdfbfc605a1751337f685f3cf851ca5">+3/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>nextjs.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-a5210d45e7d33a57d43078dbe2a2ccbf0667b157291fd92c3986092d7d33ab9c">+10/-11</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>react.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-6f5adda9f7b29d98c68cab6ec754c0bac501666a49dd635ee830789e2c812b68">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>vue.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f6c4215fa6909fd3accebe0691a7364d17befb8ef90da5a4aeaee83d598c0540">+9/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3ca431109466557ec1ba7fbd4cb01fa0ad6316e3a9a2fe9c4a849b2760cc7613">+0/-115</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2a040923190b20dd4aa651b3cae8a7be263e7c5d014a71e9f27d628fa7404c08">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>getting-started.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f5ce74103419f39f4217dd75f3e89517779c94615558ae726ae1b4519328a939">+0/-35</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>diagrams.txt</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-5f90e86736e92ab8b695c8cad8bd1d65d2be49609da7e693957bad0e238e563e">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mermaidjs</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e68718f71eddf030085b739d48f6067bbb15f2421256ff27620d00f022b0c710">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>sequence.mermaid</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-cec810243251bf77934d8689d65f3e7d33f7632decf51e5eb7115b17042c11d9">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>introduction.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-0166b0574213b999964155797259928739a25e0a09d0442bdd14ff8307dcca30">+0/-85</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>mint.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-c91a604899dfef4b2494c317f4fd39a7f22b79986095f580399347293d534deb">+0/-560</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-adfa337ce44dc2902621da20152a048dac41878cf3716dfc4cc56d03aa212a56">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>configuration-overlays.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-f94c8434a3810529922d6b73ebd5f348e4f978b973e2959de0c0e45889b914d9">+7/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>local-development.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-29e98b0241b9335e8929e64440664e4be275f3a3965a88d22a3eb80b5034fca1">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>migrate-config.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-0e2b5b8948935d313421790d173d10bb5c1242166f97d87fbf35d2a010d643f1">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>multiple-projects.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-b756a0fa80d9cdbefb538f676c90521bcff5e730498cde0430bfe789475c4e2f">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-18be817b7d51e5caba56718075ae087777f3e3811987257d48949ada0fe96da8">+46/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>seeds.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-94215e4f4b5a3df8c20f0102f5755ecb55b5155d6ddbae30844666e477b496ab">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subdomain.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3300c8ab184167028e82d2e66932958ac55ebe94fba7d1aa2e45e8180178ea0e">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>billing.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-5a3b0998ad9e2f09c66255dff3651de3c6d7999e8e9c84169481e5e8af95935d">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>compute-resources.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-e2c40097d219e905b83f9e5ea40b19f6b927f846d7834b37a2dbe93dea3f5299">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>custom-domains.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-6004c16e12e623eda4d50a3b2e4f8ecbf5c2e1bbc9e5a91a62232e3a35f76a9d">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>environment-variables.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-49e8324f160e8fbe2cfea76adb45de7bbc3da6ca3d64d3a786a0f188c8bec9dc">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>git.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-d427ee2887e5cae303ce21a0b08300a82955c0f7f231ecea2ee198b69b0feb8d">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>logs.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-d04ffc497f0eac2496c6bb7d4dfbb49853f35ba380dd45baf2d3239f8a42d569">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>metrics.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-14a13543059bf5d4903769ef3e6a90bb63af5cacc6105a35689ff75936421ea2">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>rate-limits.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-16b5125772f57a495889904938e950431b7b03a886e32241a162554b952db0c1">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>secrets.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4c49bd272574c88f0d475d349c782c4ea24ba5cef97127106ebddde5befe7f4e">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>service-replicas.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-9188cea8fe3017f7732d5c9ed6600ef0147da8e960cff24ac4c6e156b53c4be1">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>subdomain.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-6d4add19495d7514bbaf0d67d9e60cf83b10ca4de6012aaf39dc0e39f3086bc6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>tls.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-ca2d4657dffa3ca239e06eef76855154feb9b155317c67ff182d79f81aeaa236">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>deployments.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-6fa07c021c9566a75e9aca5efbf0f4708bd9862bb5484bf95cc25ce00f30e853">+0/-38</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>community.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-4f14893ed8d4ebde9be284bec0c27adc760452f8939246a6a65361bfd70760b8">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>dedicated.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-78f989a9a039240f69408cb775632f7494754276051eae98af420dadf096c8cd">+18/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>overview.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-7cc9f04b4559ab62c5104791051ff7d7ad8dea108f1720eb260aa8e68475b0ee">+40/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>support.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2aa4bcb1194ac3857cbb1846e43db4f1a5ebd0d9302e02308ce1502fb8c0a763">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>product.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-3a7c615149cb270f3f59493a817306f87f8771114d1272de085359996e64bef2">+0/-56</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>authentication.mdx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-1d91de2bc59159b3d47e86967f6ea82c608a10eb277d3fc0b5734f6f19305089">+0/-66</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>Additional files not shown</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3254/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td>

</tr>
</table></details></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>

---------

Co-authored-by: Sumit Saurabh <62152915+sumitsaurabh927@users.noreply.github.com>
Co-authored-by: Nuno Pato <nunopato@gmail.com>
2025-04-01 09:34:27 +02:00
David Barroso
74396856ef feat: port /signin/anonymous to go (#621)
### **PR Type**
Enhancement


___

### **Description**
- Port /signin/anonymous endpoint to Go

- Add anonymous user support to API

- Update database queries for anonymous users

- Add configuration for enabling anonymous users


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Add anonymous signin
endpoint to API server</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+141/-66</a></td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Add types for anonymous
signin request/response</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signin_anonymous.go</strong><dd><code>Implement
anonymous signin endpoint handler</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-a664467412bdd550d6954e553c8f661d028224b123ccfa82c736da8918238527">+67/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signup_email_password.go</strong><dd><code>Set
IsAnonymous flag for email/password signup</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-5fffb003b4ec056dd9d85d00c361634598661daa48f97d5225ec9150dc566124">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>workflows.go</strong><dd><code>Implement SignupAnonymousUser
workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+80/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql.go</strong><dd><code>Update SQL query for
inserting anonymous users</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+6/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>anonymous.ts</strong><dd><code>Remove TypeScript
implementation of anonymous signin</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-67e50ec5bc7703c07c92412150fba2d8b6e4a21e846379214fd608731013d7f7">+0/-49</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Remove anonymous signin route
from TypeScript</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-26afd2e4ccfcac5d8a5fdbd1312ac77bfa6d2269f06b7180b4ca75c8d523d642">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>query.sql</strong><dd><code>Update SQL query to include
is_anonymous field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-c19dd96472c44a7389d4d1f72e0a1879df1e06e8e4d333ca3cb6b6dfbe3083ef">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>config.go</strong><dd><code>Add configuration for enabling
anonymous users</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-6ed50c9d309f6e7cf03742253995dfc65ae67702ae9c4aeb650b24a9b87cf377">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>serve.go</strong><dd><code>Add CLI flag for enabling
anonymous users</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>config.go</strong><dd><code>Add AnonymousUsersEnabled to
controller config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-77fe34a234b413cd5f46aa02ee1cb93864fc387e765cd7dd1a54efd7ac9a4eb0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>errors.go</strong><dd><code>Add error for disabled anonymous
users</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>5
files</summary><table>
<tr>
<td><strong>post_signin_anonymous_test.go</strong><dd><code>Add tests
for anonymous signin endpoint</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-c25dbd9375a284855b2297546ad1f6e2550bfaa189af9aea805d8a20c21fddea">+423/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>post_signup_email_password_test.go</strong><dd><code>Update
tests for IsAnonymous flag in signup</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-c7050138b811ec2f854c0dfa34ac1eb9f03831c1f682e6a677dfe16943cb5f84">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>validator_test.go</strong><dd><code>Add
AnonymousUsersEnabled to test config</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-3f42f5f887ad54ac2f169b2629a4d17be0917e55ca60bfac885300953c8cd5f2">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>tokens.test.ts</strong><dd><code>Update test expectation for
MFA field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-132ee7c1c459de8ddbcf82d70b938fd10f91b986114d393d2ece55d5126b4278">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>anonymous.test.ts</strong><dd><code>Update test expectation
for MFA field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-1cdc1ae135bd59b27586ef55c636d998cf0f1e17c216512c344a676d6c3f5cf3">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>flake.nix</strong><dd><code>Update oapi-codegen version and
configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-206b9ce276ab5971a2489d75eb1b12999d4bf3843b7988cbe8d687cfde61dea0">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>openapi.yaml</strong><dd><code>Add OpenAPI specification for
anonymous signin</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/621/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></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-03-28 08:39:32 +01:00
David BM
8ea263ec75 chore: clean workspaces code (#3241)
### **PR Type**
Enhancement


___

### **Description**
- Migrate from workspaces to organizations

- Update GraphQL queries and mutations

- Refactor components for organization structure

- Adjust routing and navigation for orgs


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>16
files</summary><table>
<tr>
<td><strong>graphql.ts</strong><dd><code>Update GraphQL types and
queries for organization structure</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+84/-1054</a></td>

</tr>

<tr>
<td><strong>MobileNav.tsx</strong><dd><code>Simplify MobileNav component
and update navigation</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-88408885daaec8805bd085b53462c9f2d95db32f7e523912837a8167211b4fb2">+11/-126</a></td>

</tr>

<tr>
<td><strong>ticket.tsx</strong><dd><code>Update support ticket form for
organization structure</code>&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a66cba186d2014b03f1a0e005147ae7b48e88933700fe065d235cd819a949a97">+28/-84</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>ApplicationUnknown.tsx</strong><dd><code>Refactor
ApplicationUnknown component for new structure</code>&nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d1d7044dd66488c5bc787a89612754b283eedb404d4d6abcface2fa533d5c9d3">+17/-21</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>DeleteAccount.tsx</strong><dd><code>Update imports and
remove workspace references</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3d84927ffa4b91d986ff6c6f601b3476503220e1c1d8cde25ebf72c8d0ed6b9e">+2/-26</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>run-one-click-install.tsx</strong><dd><code>Refactor
one-click install for organization structure</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-00e84c02bfc3c34019e15f820b23e332eeb1933a745be330c3644cb0f63c92b5">+5/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>RemoveApplicationModal.tsx</strong><dd><code>Update mutation
refetch query for organization structure</code>&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-e454a42c12dcbfcfaa463ab3421037408634e3a539f460525c79d68adfc118ab">+7/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationInfo.tsx</strong><dd><code>Update mutation
refetch query in ApplicationInfo</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7372ad22d70c3c354d8e0dd442eb7e49f70f65a386b934b6eee7f8c4b89c3a3f">+8/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectRedirectWhenReady.ts</strong><dd><code>Update
refetch query for organization structure</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a234bc908266de3091b23b5134a01fd769f96759eb52aa108d2ad4b796b0303f">+2/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>DatabaseMigrateVersionConfirmationDialog.tsx</strong><dd><code>Remove
workspace refetch query in migration dialog</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-89e193ec45127a72f9491ad89eed5eda5939936686f88aadb48cfac350462271">+1/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>new.tsx</strong><dd><code>Update new project page for
organization structure</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ef97470126e3edc146dda51337aaec556387e2f8a37afa70810d1dc94958f4fd">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>BreadcrumbNav.tsx</strong><dd><code>Remove workspace
references from BreadcrumbNav</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-2a69d273b2a9e8695d46f6c73dcbb6e161d3bb85f52deb65930018b17b148b3e">+3/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>BaseDirectorySettings.tsx</strong><dd><code>Update refetch
query for organization structure</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-50bcccdf949a19ce69fa86acdd63b5291fa2beaba07191a62c87d40ea5b94e88">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentBranchSettings.tsx</strong><dd><code>Update
refetch query for organization structure</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d8fc80cc734f593c686f873536856bf9103efb1115ca865709bbeb7bd940895e">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DeploymentListItem.tsx</strong><dd><code>Update refetch
query for organization structure</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-2a548c457ff2ab8fc1bee326a6a3b5eae9d0d6eb18f5ae95bbdb437c3f6b0a73">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>index.tsx</strong><dd><code>Update mutations to refetch
organization data</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-b4185be97a505e25badcdefe31ea86fa9d69f72264c4bb35eae17fba936a3d47">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>2
files</summary><table>
<tr>
<td><strong>mocks.ts</strong><dd><code>Update mock data for organization
structure</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d1ef12c0f15123bb4e23a0c513fc3d9b5c16af421c71c2909fde3717e09a9d89">+10/-27</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>testUtils.tsx</strong><dd><code>Add new test utilities for
GraphQL mocking</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-78f29250407edf853a353b48242d3cee59aa5724f38a60bb23bebdfc1ea2f9b5">+50/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>useNotFoundRedirect.ts</strong><dd><code>Update comment to
reflect organization structure</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-262687fd80c4510f966a57885b1cc42a6297fd89ab49f6ff49b0df59670027f1">+1/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>77 files</summary><table>
<tr>
  <td><strong>env.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a1581a28a990763a0fada80d8a3030b70a702d744e98303887f390ac5ae24139">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ContactUs.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7137edfa9862e14ab2ca4660c679fb62f83990e161267d0dd7deb2977d117ea3">+0/-102</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7968eed227f9c5da437b28062300b7076b1c124a3e3a335b29d91610c321954b">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>InviteNotification.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-9209cf2ec7253c2a3ea03496f2e213b9f6ebf569264394ccd4c5cf5deef1f0b5">+0/-200</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d4130a4e4d35e0d48479ae89c72650e23cb7a0389224f932efe59722e3a47d93">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>TimePicker.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-784f69003ebbc9e39837b920007cef14125a5fc48bb9114226820bcb2b0827b0">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AuthenticatedLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-2d69ccffd267658f76d77a864cdece93fc222e08f6025955795fc6f4697f60e7">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>OrgsComboBox.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0736dac185f4ed134d5b53be292c9a2ee4f6df65e965b801a2dbbc8a184b3687">+2/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PinnedMainNav.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0fbc67c16a16e263b51e46ada3fbaccc041074f31f541bf663ae3b4b5f2a2a17">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DisplayNameSetting.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a1daec18d5c3196aee5b2c5303db5654724f8d37cfa427594951a4d02fbe32db">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>EmailSetting.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-98bdf4ebec67ab2b4cd475c9df16a39a66505da961a8448eb5e41a33544dcb38">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PATSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-880f5f139ed8c495239dbffee77691f761a004dbc5ce8456a95a259f79fb4136">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PasswordSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3b25d2f3c57a61224551f9eafaf53f22a70c5767b22ff5b7e2ae85b9c5705dfe">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>CreateOrgFormDialog.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-9a1ed9e851328393b81356d80ade3509016aa55c254ed1f4deb692b0bd96f02e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>TransferProjectDialog.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d4ebdb8af76a7c9e73606708718c3448445545259ad553d73b6d322408e3eb8c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>NotificationsTray.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-727f6debec6a102557407e55c56363e0c75486e30a732158f85c81ada892f77c">+2/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ErrorToast.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-4a05f3b37769de69682260045f29c254b3ad6ef05f059e2b0f77cf9bd68e9bdf">+0/-85</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>ErrorToast.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0095b510fd0557ef1d286cebd9fa102d24e1b0ff4d67148575d158e938304656">+0/-170</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-c16e96ee3476ef73bbc643d7c2399ad9ae8d0cff77a8e554a79c78eea26252ab">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useFinishOrgCreation.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3b8bf7608ab36d8ab0df895e400f0d2d9e29fad2055b40b33d8d9912a27c99c3">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useRestoreApplicationDatabasePiTR.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-dd5774f502b63d2d443069bedb4c9531a77794a95aaa5c07287093695a4dc60a">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeleteAssistantModal.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-81fc3c54dbde20f2535b00a52fc28e11ffd80fbcc90c0c34b1b82ff937cce215">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DisableAIServiceConfirmationDialog.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ae59e5250d9ec095cf3b141efa9734f239aff11c959de9795a94eddd426b1804">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>CreateUserForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-4e59f7d98f7ab979d2273d8685649f1c39165b2e33b47887645f0dda07edf306">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PointInTimeBackupInfo.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3980415ca79bf039abb469281fff9b1dc1de0a1ef52b4044d8c6f529538b6edf">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AppLoader.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-fdef910b2c808595c77cb3c0ae573db3ff57cdb4a8161db2e36e86ec548b9b6f">+10/-20</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ApplicationErrored.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-77c5a4128ffd614f299c867e5e3508430946f8f40d4ef5825f57874371fb1101">+0/-272</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-dbaba110b63f272983b09a1a453c0b69577136e7f0f2ff49c4cee6cf78f4325e">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ApplicationPaused.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-14afdf5ac20f058c26563a6992a3751f11cf173eec27206001262b5d1b3b979f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeleteServiceModal.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-509d84f75908da0f25dce5f49a6103f3a938c9dd7106b66739ca3758bb83686f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useCheckProvisioning.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-e1758bb8d3381f814d6619dc33eee8b36e39d2fcb6486d5c8cc3c46bbe62c555">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useIsCurrentUserOwner.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3941cc4f23c66f12e94850e88e05ca142a627ab2d9ec797ff757dab679c58c0f">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-5a21e22b6c3f0b8f3abd13a4f78cd918662785eee6253480fa0116d11e9c6957">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useNavigationVisible.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-3a395e5461f6112ecf12f399ef008999133a1b3a9d9b267b2ea7f7d5d39d1fe0">+0/-63</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-4f8060ca9eb12226bfb857e06e67f5f3fb583622d878a243e300c9529275c032">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useProjectRoutes.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ffb341175a52f91f88ce6906c93ff747944ffd3ed9ff9ed27f0894e88e778b66">+0/-160</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>RolePermissionEditorForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-c7cc670c499aaa76537a1ac3848721988fa0196d4cca8f6b5376b4a14f01341d">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DatabasePiTRSettings.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-85d1f82a571b56469eab40dcc164fdd1e107fba79611ddd5cca7c191fe5117b4">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DatabaseServiceVersionSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a982b817513fc173371f7468ad642f99ee0c914e5990a48992fc1fa5e230765f">+1/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>OverviewDeployments.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a9440d76cf165e4df8e9db020ee2ab3896281633dbe5ba3691e775d57188bc80">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ResourcesForm.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-8828db70c080be6fc19f88059b08587584f1c23c9159092d6b186ca82a1943aa">+1/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ServiceForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-a02746694d45a84390d09b49a1b3eec85c25a8bd9a70b4834ee5af1ba82cb88e">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>execPromiseWithErrorToast.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-adc371e89102ef58f14269197d4ce970117519df44ad77174ed6c32128a67079">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getAllWorkspacesAndProjects.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d932cf46bd3efabd2e4240961ce868bfe056319507e0f0738476d2300520df46">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getAppPlansAndGlobalPlans.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-390440124963f8917a01146b85220aaa57a1979f1d0efa5d460b8979121be089">+0/-39</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>getApplicationPlan.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-cd0b842260639b906128451c479685925192415ae366c3a584f897022f715ccb">+0/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>getWorkspaceAndProject.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-6b457c9426ff027a373b6366fa518466e1bbe31aedd19ae0d5a5ac000defebff">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getWorkspacesAppPlansAndGlobalPlans.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-98bf824b6937b6b6ec16d4c75194876ecdb2ad9e9a4d5bb3681458214007fd02">+0/-39</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>insertApp.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-1b04d1a9b24bd1348f12f9f89330e38aa4e64fa9d34f3635a02f23c5bbc767d1">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>prefetchNewApp.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-da7b539d835be3df6211788845bfccf4a45259516af11bcae8840f7ac6c2eb9d">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>organization.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7a8445445910a3f718136846bcdd03a504adaa0ece372e1cee99855abc26f1a0">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>workspace.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-503e0160f94a01ed2ac4026bb30e5c3524d54eadba1edb986a8b5e5518112577">+0/-18</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>getAllOrganizationsAndProjects.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-11d0c4e299315719cac8553bfe6a245fcab0d592611f262b8975066b968799a5">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>deletePaymentMethod.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ed0ca3304c58b0867a3dacc4262b9f3dbe1720f6bbbc4f6b70c630231d3fa842">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getPaymentMethods.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-05e6800ddfae03eec9b811bedb49e519a9683009eef7db1276d483d8810016b2">+0/-27</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>insertPaymentMethod.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-580f9ca3fbdc0b48c66b5c358045a24e890c5d53e6ed2ae9818d7775f2564269">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>setNewDefaultPaymentMethod.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-fa1366610e5485ac4e423267434c0d9147dc76db7f0842ac2f9d5c32f57e8e22">+0/-17</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>deleteWorkspaceMemberInvite.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-85b6d2a6825ba54b85b5cb065705eeb0d65a488fbea853cd46e60208f2d17146">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getWorkspaceMemberInvitesToManage.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-8e97084848d9462ae3a1751d5e5468c5a9772df56d790b4c29a80c89776070a0">+0/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>insertWorkspaceMemberInvite.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7a86261ddc3fcb4863c2fdf607eb73292f0c6175f4fe74303b5f3325279852da">+0/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>updateWorkspaceMemberInvite.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-b36ab22e1cc92da61d8499dffa16a96e54e353f839b026acc9a08d29b2ebba1e">+0/-11</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>deleteWorkspaceMember.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-7a1add8ebc3e12adf78aa481062a207af509d82170a383d0995eb46a1151e4de">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getWorkspaceMembers.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-584c1f1108054fd783fd7f12a9a746a1c69345d0a6c1d2bfb6f6cf57ce423065">+0/-31</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>updateWorkspaceMember.graphql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ad799e00a2ca484fbe7aa9b1e1f6e0519a989ebf1478506f1c4a516052bd70a6">+0/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>deleteWorkspace.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-9c3cea5f88a37ea264617a5cc4e992f2b49c3817a31786a238fef9ec4cf6ad95">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>insertWorkspace.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-ffcac8e9d094021d7ec386ced82f1a36b366e86b39acaf389c570bc21b92be1c">+0/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>updateWorkspace.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-d8cf2dd0d7e221dc8d5f787a1db06492cb56919725fc2211f47c399ddc1b0f19">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>[...slug].tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-56e5a4a71eca9397303199bc4f5595a08ec3ce62a2499f8c079d53c71e9cd8f1">+0/-158</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>plansQuery.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-22d9c2d45021b1b76fc284ef1baa41474357ea0ef8c2cdedd06d7bcac3e32629">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>prefetchNewAppQuery.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0a3a444a14b5f5495ef86c90f200a3a672732770e90d4b7206468e2ac265d9fe">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>mocks.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-39b16c295568f731fa43aa5a9d642b75fc70f4c0a8e281d701c59da01ec2121e">+0/-124</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>testUtils.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-6ebbd73e167641a1706f1b8d30b00569336d10f3c2ab7626d81e639015383e5e">+0/-164</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>application.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-380f35753fb3e224792c12d28bc7505ea961ea3f7efd578d1647f76af15afe9f">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>graphite.graphql.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0b7f0e87bb1506853e3ff0227d39085c67994427b818b1b05bb3df5a94539ffb">+5769/-25931</a></td>

</tr>

<tr>
  <td><strong>execPromiseWithErrorToast.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-1470fd6a1f6e5557aae2940678106477b11e8a9c8ebf37fc2fa38c0d24a9118e">+0/-62</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-992ff318b1e702f9ad368ce2e529f0ea57cc6711edf892815a0ed246173001b5">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>tailwind.config.js</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3241/files#diff-0421515d64f36bf18988a5e62f6b406277d9a63b6991a8b3f4c9e976836449c8">+8/-9</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-03-27 16:25:39 +01:00
David BM
7b9cdf1f5f chore (dashboard): remove unused legacy workspaces code (#3209)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Removed legacy workspace-related code and dependencies.

- Refactored and relocated utility functions and hooks for better
organization.

- Added new GraphQL enum value `Pitr` for billing report resource types.

- Improved type safety and validation in service resource forms.


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>13
files</summary><table>
<tr>
<td><strong>graphql.ts</strong><dd><code>Added `Pitr` enum and
refactored GraphQL queries.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+177/-175</a></td>

</tr>

<tr>
<td><strong>ServiceResourcesFormFragment.tsx</strong><dd><code>Improved
type safety and validation for service resources.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9b9bf7e4f4e4dd34502e1b636c9f9aabbb20defe43595a79aa7e3f7d89750029">+46/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>getPreviousApplicationState.ts</strong><dd><code>Added
utility to determine previous application state.</code>&nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-cdc095ecffb5d21ca54d8537f3d2359bb64c5a0ade4ee94ae9d842ea7342f3f0">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ServiceForm.tsx</strong><dd><code>Updated imports and logic
for service form components.</code>&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a02746694d45a84390d09b49a1b3eec85c25a8bd9a70b4834ee5af1ba82cb88e">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useProjectRoutes.tsx</strong><dd><code>Refactored project
routes hook to remove workspace dependency.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-ffb341175a52f91f88ce6906c93ff747944ffd3ed9ff9ed27f0894e88e778b66">+5/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>ResourcesConfirmationDialog.tsx</strong><dd><code>Simplified
resource confirmation dialog logic.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-31f0a9eb5e1c1199ad462b7e1a9886cf4941676dc2506661c3d304aa5cf1716a">+6/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>usePreviousApplicationStates.ts</strong><dd><code>Refactored
hook to use updated project state logic.</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-e0bdede95ef9307a61f227b0f6a7dd3be67470e4a58ff139bb5b569f5bef2680">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>AuthenticatedLayout.tsx</strong><dd><code>Updated layout to
use refactored hooks.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2d69ccffd267658f76d77a864cdece93fc222e08f6025955795fc6f4697f60e7">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>PortsFormSection.tsx</strong><dd><code>Updated imports and
types for ports form section.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-75c4254c31fe6addb187b5d122dd1fa171c1a8875c0152a6c1b2a05257c61d4c">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationUnknown.tsx</strong><dd><code>Updated imports for
application unknown component.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-d1d7044dd66488c5bc787a89612754b283eedb404d4d6abcface2fa533d5c9d3">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ApplicationErrored.tsx</strong><dd><code>Updated imports and
logic for application errored component.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-77c5a4128ffd614f299c867e5e3508430946f8f40d4ef5825f57874371fb1101">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ServicesList.tsx</strong><dd><code>Updated imports and types
for services list.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-643c818a248c42950336289392ac97ed9ef5c670ff8e47b80588b9802844d28a">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useHostName.ts</strong><dd><code>Added new hook to retrieve
host name.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-89b0d30fdcc12b0b3ea97e76676101c2a535ec0817ef106e26f74736d190d1b0">[link]</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>7 files</summary><table>
<tr>
<td><strong>OrgsComboBox.tsx</strong><dd><code>Removed workspace-related
logic from organization combo box.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0736dac185f4ed134d5b53be292c9a2ee4f6df65e965b801a2dbbc8a184b3687">+3/-57</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>Header.tsx</strong><dd><code>Simplified logic for opening
Dev Assistant.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-edac1cd4478dc0ad12911ea2e486f40e49f6dc64eaf8e72084225d1f4e8725af">+6/-18</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useNotFoundRedirect.ts</strong><dd><code>Removed
workspace-related checks in not-found redirect logic.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-262687fd80c4510f966a57885b1cc42a6297fd89ab49f6ff49b0df59670027f1">+1/-14</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.tsx</strong><dd><code>Simplified navigation logic by
removing workspace handling.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4eefa54204aa396da4d4d2f1d633d42d1b8ef86987f6e8c9b63d81df1ea6a273">+3/-21</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>run-one-click-install.tsx</strong><dd><code>Removed
workspace-related project filtering.</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-00e84c02bfc3c34019e15f820b23e332eeb1933a745be330c3644cb0f63c92b5">+3/-17</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useNavigationVisible.ts</strong><dd><code>Updated navigation
visibility logic to remove workspace dependency.</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-3a395e5461f6112ecf12f399ef008999133a1b3a9d9b267b2ea7f7d5d39d1fe0">+8/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ErrorToast.tsx</strong><dd><code>Updated error toast to use
project context.</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-189ba99303a20e964b5e3f3d6f1cf95c6376780a59604d1dee98aa84d9a2a9dc">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>101 files</summary><table>
<tr>
  <td><strong>brave-fishes-tap.md</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-d01ffdb9103e911bc83d52df72b16006ca7d8af6c0ac8ca5504f022c0c3cbd0b">+5/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>InviteNotification.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9209cf2ec7253c2a3ea03496f2e213b9f6ebf569264394ccd4c5cf5deef1f0b5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>TimePickerInput.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-970eb8f755f27a1e13f0d24230c403ffd1e5ad7829e14b67690373bcdade1277">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGrid.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9cec5ba99b1f62307ecdd1444d14288bef737bac6d3eff1c02ddc2f89e9f9061">+0/-67</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>DataGrid.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-28be1550256357ac5d3668065e1e3a496e6896ac12121dba4dd0c98948c3d2f6">+0/-185</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9458085c38927aa3e04af020d769fc21a2b9b38dd190da9258a557d720c20f7c">+0/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useDataGrid.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0af098dd11eddfb502643d4a17599d3f96f70dda9d0dd76be58eb651e6ab3e08">+0/-110</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DataGridBody.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-bd9e62c9a14fac478b95684e09943ad95493e3cd0f517d3b2bcf27d90a8b6b7c">+0/-315</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-095354baa6f9bcf08084323308fb51d62cdf1993fa2922f5b6008173654ff94c">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridBooleanCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-912f222369372de8803ab4ea2ab8310d2ea12f98f08e9e4ae76ce90b99e9e718">+0/-121</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-6aaf85dd782c1bd3f87baa67daa100ae57b06680b536ae261be81a9ae9f3225f">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-30b7b50f3aaa8f1da1709951acc8338ca283830474e9d701e5a4650540ea6f8a">+0/-381</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DataGridCellProvider.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-c996a77e36cee151e515fd26d540a3e661c76e41f1cceb7de6f52bd51d5849b5">+0/-238</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-085c66def9eb67fc7c2a44f3421206a58c4ec60127e463251a2632061fbe8ea8">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useDataGridCell.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-cb0b09edfdc285173765bcbb7c4822083286dee9be4de07fbafe802a72d997c2">+0/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridConfigContext.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-f6e013fae040f331dba8a8cfd69ecd9629e609299ca2613de378deef3e2b0a70">+0/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridConfigProvider.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a285c2ab50379b3e50ae912427b3bbf1748534fb688c23e0e9b3e9d63e3670a5">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-b495c649d04122385810916ab7e9cea8a36b3a2c636c376b44172a70804cf7a5">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useDataGridConfig.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-1ad1e4d3198ad963ac96fecbdd83f4061ed3133cf16ace8f7f936bf7721365ab">+0/-15</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridDateCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-fff3b2aebb93d3d3a351d7d4ccbc43d376b09ec623c1535c94509f4f35ae2da4">+0/-166</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-fbbdbffeef2e43799d1108293e0e37d7f2949540b4c9ab542beb340a6a84c115">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridFrame.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-8d8bcaeea226957a5ef1a58038b02c161950da8a2f7af5ee95c657775a204705">+0/-29</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-b4c9a950b5dcf474d3d8110544e8a049ff2c0d496aced6c82f7fd77c438c7e67">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridHeader.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-02b826079155107d8958b4c673ab2b16853a96e46ef6f57cd832eadfdc2092c8">+0/-233</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4fd4f6e3ee3ef5c4821bd8fa47ac59c2c6a8ca90dde1765ca8dde1a0689474f8">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridNumericCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-e43c9c46c38fcdb978debf6164c8961acb5205ee6d152176b63d8dd2af413aa0">+0/-110</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4497697c15accb04a0115741740c32a7bdef1590b395f3158b1099a627d501ce">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridPagination.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-70ecfb728f6db3744bb35fcf537f70b20fea7688a00d302db0c624ffc0a043f0">+0/-91</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-eb674985acf19a5b7e619edd684c7760a617dc50fde1e9d746b1e261e092ea97">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridPreviewCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a4b0178eb28a1feaec9a72ad10c12283920cebbbfb0191c60b2535cb9ae028c6">+0/-410</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-845756895046979c2172565ff6d7e02340b93ac9e4499f930df626a0f5097880">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DataGridTextCell.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-74741563ec9d20b8894db4b3e653d1b345de156cd7dea1aded30ae9f78c3a7d3">+0/-243</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-53ad1b029b8643989c03e80ec5bb988c9eea2cf0ca595df2bd9eeb173f035f9f">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AILayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-06c432465b00d94c1f3fc8021951bb4d25f4e38195a6b1d90bb728f9105ae632">+0/-46</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-d97b390020ef14021a1ae3e1643b3a4f329b13a8a68aa5353a8a3ab64e824f91">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AISidebar.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-29134460a234b6ae943e6c6d8d65ac8f9d66bf4e3403b045b94662b0f57a964a">+0/-143</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-b3af150842887ad9d9107eb9c70330ab8ae5b4b04932a1c3f671547c4e99301c">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Breadcrumbs.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-faf66535b1957a4f15804af0dd708fd0a64847ae31d782db949ce0c6597e3683">+0/-78</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2cad195ac8af2b5acd41032c9ecbec8b476c9c348f08aa305ef0a3e81098a29d">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DesktopNav.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-547854a882b4681187d3e8beae5d8512fb3c49cef3017ac891f57b4f04e87fc2">+0/-90</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2f102e83204acf8d7bb8133d7366e65a168c77e212fbade105f67845d53e4622">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BreadcrumbComboBox.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-1d14ffa8e3a2bbaf9d8bfd4f215670cc62ce74558420619b98dd563a82f5ddb2">+0/-109</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MainNav.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-8a552e1cae4ec4725740e006ec406aa60057db39c9580a31d938709d17d4b2c3">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>PinnedMainNav.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0fbc67c16a16e263b51e46ada3fbaccc041074f31f541bf663ae3b4b5f2a2a17">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>TreeNavStateContext.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a3558f36294f2b09b28b3a7704b443f2f2c92c33a0d376f986ca4b365907e7a9">+0/-13</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>WorkspacesNavTree.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-f16c5269315ce432f3fadd7e5b6c67b5677c2565e86d8e992d7336c139240423">+0/-495</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>MobileNav.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-88408885daaec8805bd085b53462c9f2d95db32f7e523912837a8167211b4fb2">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>OrgProjectLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a123a6ce5d250edcfad8d67346a1e7ee5bb31f2416f8434c406f8c08e6d1c810">+0/-123</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-18c0d591ef16e8caecd0f371f139647bc68a958f300296cd5077e91f5a5efa73">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>ProjectLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-8caf89cbfa2eaba06d159548c1a77cd21b0da6553922bb5198bf8fb0f1d15512">+0/-114</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-8514a657bfc9d16c0c3d0cfc7df589876c15389cb9937fc15e46944e625413e6">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SettingsLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-5d2869e956e78a19f2c099eb43ed3edca826c599ea327e790ec09f2c07f92026">+0/-69</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-e0760e0de853e7e172f98c8c2932124d9a6bdd644d1751dffefaa39a13f313a3">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>SettingsSidebar.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-228be719ea3624edbfd2af99af3c076cebb3d0732026987306aa1032a795ba00">+0/-266</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-398edb964d1a53e31ed4afedda4f85455f37180b8bfa3b4164d848e9f8e25438">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>UnauthenticatedLayout.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-54ee5ad9c01e99ffb05218020a6b97d091cd97cc53ad27e950480a3e675f2220">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>StateBadge.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0785b6d6a702605f6410d8c76a303ed8bcaf33449f12b0cf6324f0250e94562d">+0/-58</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-d9c38a018643979391b0c0baea0e859dfb19eba0f06dcaa7198a789dcab24df8">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>spinner.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0404df81ce8503d881cd2f3f1ac59865aafd65f559e6a335cd79e2c49fe31476">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AssistantForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-f6015289d06f2d4d6b495549c0c54db2fb5833bac4ea659877b3e2c32668c758">+0/-309</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>ArgumentsFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-c0cbe9d5ad0a46c4cd994015d5b27452b484182bc59f9524e585389c784c6fad">+0/-165</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9a27cce2e15cc8f73013ea09de29d18b077b3dca6b70cbbb6f65868cc6e4f35a">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>GraphqlDataSourcesFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4a435a4417301fe788a7556a19e81b78fce505dc1c5fa6dcd7866ab4882e16b0">+0/-123</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a47e5e39caca5b4d48ebb44351bf53a131d3bbda63842702998eaf10758457bd">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>WebhooksDataSourcesFormSection.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-351156304a9a0e733ed3021f8403d66e0c90d982f0473ecdde18fbdb7cda62b6">+0/-123</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-ba756f916fe87414836dede20a92c9d6b92dd45e637a3b4997dda4a53afb6561">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-7a8d3a1c1699597e56716689080a27d87fa8e324b8d9630e376f6b7ac4e7b103">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AssistantsList.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-1a59975c1b045c82661af32381c5ba707d6148d3cbf32d2058cd1608a498bcf7">+0/-158</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-8cc30611ef5cd09068b1b6e72dec22807667298bb00b3d03dd857ac4e18ae693">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AutoEmbeddingsForm.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-652aaf2408d7a565c133280378b00f1f915b95f6e11a02c3284b3de1e3f0563e">+0/-333</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9b82349addb66b827deffab33b2278cc9d1592d73a7f3b5403388eb361f59e26">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>AutoEmbeddingsList.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2d5ad51ee4b313417bf25812aea7a7b2194d8b36ec7b21f2715c591f3a650979">+0/-172</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-071889af96589df81d86bd8f56518ac55414b56710c12e04422259f8f28417b1">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeleteAssistantModal.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-936ee6ffc853afdfbe613d8f0691b0717b893867ef68a515772c1d1c2b34dbe2">+0/-101</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-416db234a1b6459a1aa10d159372597b06b57bd97bed9517447c328969cffcb7">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeleteAutoEmbeddingsModal.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-cc09a2e76a36bd3d3a72662fc74dcd8567c72a60f65babe0f9d4cd24dc1049f5">+0/-126</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-3c86ad5feb48d5736588598c0d4f6f2a2e96316f2088db653cd3008694410580">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DevAssistant.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-a70be4ce82cafa2a5cd0c587a5c927c1e21ebfe9aeebe0db45c91a7fdbfad216">+0/-235</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>LoadingAssistantMessage.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-7d85aea7bef56f2cd60bedcf0bceeea2d0a286ffaf41dae46e1a09ee3517d339">+0/-28</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-52e76ab9735b31f4a23067fb232087a07f366785bd9ed770a405cb53d7814ac6">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MessageBox.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4e2c9825294e6e1d27a82ca6275724223a438975b4c27bd2c4285c4b44192562">+0/-98</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-51ba9e75ccb25006d10dbdd1dc837f717ad35405a3f1cb7268e7e9c3efc8a0f5">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>MessagesList.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-ce3eee6db2c6205688e9e18e14bdf69ac086a9bb14b9ca700d363255bfd6285d">+0/-36</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0c1c5112ef0ff550e50083472c4664cd65ba358e40488475e6dfde20513c72b5">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-3ed20f43facb55a7acaaf127c3ec63647b04b6b035be34ba61407b0f361099ae">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-4d7e6c292d1217979f4119a3e981807d6bbd9a106d1e2e4c5129df2cdc38b9bf">+0/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>messages.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-d87f7975332092d0bb875f789ce3e06fef19d675a540805c520bb1d796fe2efc">+0/-23</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>projectMessages.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-29ee83e06b8c27fa0b56d3827e82241c59441b33107805c133e44866331aed4a">+0/-20</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>session.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-9f3f7f1876efbbff1133c150dd39505154d8d1e9d0d123e199f251258ad3a178">+0/-10</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>AISettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-caaa010fadfdc403e470035e2dbbd950c163d59f8192bfbccbf0d1dd159a57a5">+0/-496</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DisableAIServiceConfirmationDialog.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-be999162874fbadbc93ca1bcabd881931c2673863e36c2e7b427f11fb7908879">+0/-110</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2fdab42f10d8c17e14864ea2ee736126e009985998cf4ec07a45f22d34deee82">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-c44601df3a538664a1d7bfbf27552fe36246ac69f27d4c35c9ede34f624a222a">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getAISettings.gql</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-3bf40707417defbba9ec9de149f7f322ad11869ea89cb136b5b4fcffe74f3610">+0/-24</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-7e62ae21154e773aa7527bea511ff1a517139bade8f36feb177a0da185778a50">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>isPostgresVersionValidForAI.test.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-b3649eb91d332adb390bf040e9eef975190a5080e6792076449a38296c9741ac">+0/-22</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>isPostgresVersionValidForAI.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-0f2b72f23874eaccaed79c80ffa750fdf0094940adfa733e8961322556195bfe">+0/-18</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>AllowedEmailSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-33d6bf857db317c4533a74e8cfc36642892a30510f04425aa20a4f9e858814c3">+0/-197</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-47c1d040f85882e659b4c936649cecf98ff50a5d87a075bba66250d9a84e6d89">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>Additional files not shown</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3209/files#diff-2f328e4cd8dbe3ad193e49d92bcf045f47a6b72b1e9487d366f6b8288589b4ca"></a></td>

</tr>
</table></details></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-03-27 14:56:39 +01:00
David BM
1c4f321f64 fix (ci): update vite to fix vulnerabilities audit (#3255)
Updated Vite minor versions across projects to address security advisory
vulnerability
https://github.com/advisories/GHSA-x574-m823-4x7w

### **PR Type**
Enhancement, Other


___

### **Description**
- Updated `vite` dependency across multiple projects to address
vulnerabilities.

- Added a changeset file documenting the `vite` update.

- Incremented minor versions for affected packages in the changeset.


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Other</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>little-peaches-bathe.md</strong><dd><code>Added changeset
for `vite` update and version bumps</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-1517254487ebcd9cd74441ddbed15984d623cbb85119925248e57242614a47d5">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>10
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-83675898dc6ed88838763232d022f6e100e07d71681cc8a1f02aee99ee3f229b">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-9fb3a23f389ab1d192d7e018d2acbe512bd8792278662101401caa98692735db">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-cb7094614884e8cd2c8fb67dadedb1887c46c31b888840def0b7042273bfbb28">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 6.0.12</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-6288951fff74ec246c9cc023b7b7e3e9aad31423891bc4ea25b5d84a5f5b061f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-d95dc3391741287366ea2e61f70e9ccc64452e0d22b1db91d6bf524f5aa4331c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-8a3e5ed0f618f15211c31f700e0da998e2eae58f60353624b7a7e637bd63b153">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-fc4298d3512fdd9a3d871f9f182fe871c8beccd1580f864a271ddfb32005feef">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-85166d1137e29a5275f991e1e94a0c9d5b83ac7504463ba76f9187b2b750c895">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>package.json</strong><dd><code>Updated `vite` dependency to
version 5.4.15</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3255/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-03-26 13:15:04 +01:00
github-actions[bot]
60d4d28627 chore: update versions (#3239)
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.25.0

### Minor Changes

- 34fdcb8: chore: add prettier plugins as devDependencies to root of
monorepo
- 4937c5e: fix: stop content overflowing in projects and database
permissions page
- 1542132: fix: update babel dependencies to address security audit
vulnerabilities

### Patch Changes

- 78436ca: chore (dashboard): add tests and small updates to PiTR
settings and restore page
- b5a3895: chore (dashboard): update page context after each navigation
-   9b24807: chore: fix link to PiTR documentation
-   ea65846: chore (dashboard): update nextjs to fix middleware exploit

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-25 08:39:49 +01:00
David BM
34fdcb8863 chore (changeset): add dashboard prettier plugins to root of monorepo as devDependencies (#3252)
### **PR Type**
Enhancement


___

### **Description**
- Add Prettier plugins to root monorepo as devDependencies

- Include Prettier plugin for organizing imports

- Add Prettier plugin for Tailwind CSS

- Update changeset for @nhost/dashboard minor 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>angry-rabbits-fly.md</strong><dd><code>Add changeset
for Prettier plugins addition</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/angry-rabbits-fly.md

<li>Add new changeset file for @nhost/dashboard<br> <li> Specify minor
version bump<br> <li> Describe addition of Prettier plugins as
devDependencies


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add Prettier plugins to
package.json</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>

package.json

<li>Add prettier-plugin-organize-imports as devDependency<br> <li> Add
prettier-plugin-tailwindcss as devDependency


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3252/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+2/-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-03-24 19:44:17 +01:00
robertkasza
78436ca29e chore (dashboard): update PiTR (#3247)
- add tests
- add price to PiTR settings
- update link in PiTR settings
- add note with recommendation about restore
- add link to PiTR docs to restore page
- small bug fixes
2025-03-24 15:53:34 +01:00
robertkasza
ea6584614b chore (dashboard): update nextjs to fix middleware exploit (#3251)
### **User description**
More info:
https://zeropath.com/blog/nextjs-middleware-cve-2025-29927-auth-bypass


___

### **PR Type**
Enhancement


___

### **Description**
- Update Next.js to version 14.2.25

- Address middleware exploit vulnerability

- Improve dashboard security


___



### **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>nervous-shirts-rush.md</strong><dd><code>Add changeset
for Next.js update</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;
</dd></summary>
<hr>

.changeset/nervous-shirts-rush.md

<li>Add new changeset file<br> <li> Specify patch update for
'@nhost/dashboard'<br> <li> Include description of Next.js update


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Upgrade Next.js to
version 14.2.25</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/package.json

- Update Next.js dependency from 14.2.22 to 14.2.25


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3251/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+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-03-24 10:35:04 +01:00
antoinecaputo
0a79a92f45 feat: refresh session with new refresh token (#617)
This PR implements token rotation for refresh tokens, improving security
by invalidating the old refresh tokens when a new one is generated.

- Edit the `RefreshTokenAndGetUserRoles` query to update both the
`expires_at` and `refresh_token_hash` fields
- No additional database calls

### Checklist

- [ ] No breaking changes
- [x] Tests pass
- [x] New features have new tests
- [x] Documentation is updated

### Breaking changes

It may affect clients that don't store the new refresh token from the
`/token` session response.

Clients must store the new refresh token received in each session
response.

If you are using nhost's official SDK this change is transparent and has
no impact.

### Tests

#### Coverage

The `invalid refresh token` test cover the case where a deleted refresh
token is used.

#### Missing uuid mock

The `uuid.New()` call in `UpdateSession` workflow isn't mocked in tests.

Therefore, the `RefreshTokenAndGetUserRolesParams` matcher will only
expect the `NewRefreshTokenHash` value to have changed.

However, the `RefreshTokenId` field is correctly updated with the mock
return.

### Documentation

Updated `docs/workflows/refresh-token.md` to add the refresh tokens
update.

Closes #416

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-03-22 06:40:28 +01:00
David Barroso
87f3c7fcf8 feat: drop user_providers_user_id_provider_id_key to allow connecting multiple oauth accounts (#618)
Fixes https://github.com/nhost/nhost/issues/3203

### **PR Type**
Enhancement


___

### **Description**
- Drop unique constraint on user_id and provider_id

- Allow connecting multiple OAuth accounts per user

- Update auth schema and add migration script


___



### **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>auth_schema_dump.sql</strong><dd><code>Remove unique
constraint from auth schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/sql/auth_schema_dump.sql

<li>Remove unique constraint on <code>user_id</code> and
<code>provider_id</code><br> <li> Delete SQL statement for
<code>user_providers_user_id_provider_id_key</code>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/618/files#diff-b25465e2d1263a553f7859fb72207fc7a8ce4a9e641969e8100306495b8d5965">+0/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>00017_drop_user_providers_user_id_provider_id_key.sql</strong><dd><code>Add
migration to drop unique constraint</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

migrations/00017_drop_user_providers_user_id_provider_id_key.sql

<li>Add SQL statement to drop
<code>user_providers_user_id_provider_id_key</code> <br>constraint


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/618/files#diff-2371dbb1bec2a5ffe16726908cc2aa8fd7ac4fe0dcedf3b3c41d67f1c3d12a3b">+2/-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-03-22 06:39:59 +01:00
David BM
4937c5e055 fix (dashboard): stop content overflowing in projects and database permissions page (#3240) 2025-03-21 12:05:39 +01:00
robertkasza
b5a3895e16 chore (dashboard): update page context after each navigation (#3248)
### **PR Type**
Tests


___

### **Description**
- Added `updatePageContext` utility function for consistent page context
updates.

- Refactored e2e tests to use `updatePageContext` and `gotoAuthURL`.

- Improved test setup by centralizing navigation logic.

- Enhanced maintainability of e2e tests with reusable utilities.


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>13
files</summary><table>
<tr>
<td><strong>manage-pat.test.ts</strong><dd><code>Integrated
`updatePageContext` in PAT management tests</code>&nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-891790fa0d9b0e0b23b12af547a6dc7736fad9eaf76b14a56f310e531e6db098">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>assistants.test.ts</strong><dd><code>Added
`updatePageContext` to AI assistants tests</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-95533e004b514add57a2c87201a68cac11c20ffa458afd78e045ed89559e7546">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>auto-embeddings.test.ts</strong><dd><code>Added
`updatePageContext` to auto-embeddings tests</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-d3a5b860634fd36dd33ac9236210632eb5f8ad322aa15bedfc61a8e2c60dbd68">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>ban-user.test.ts</strong><dd><code>Refactored ban-user tests
with `gotoAuthURL`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-8d8d853b89f4a44454e4400182cbfe900f3c15eebe04d43a8d43f9c782b39f57">+16/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>create-user.test.ts</strong><dd><code>Refactored create-user
tests with `gotoAuthURL`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-b5d83f9ceb9d621a5fe72789a6c961773548d7f459c72fad953b2a09694ff0a7">+2/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>delete-user.test.ts</strong><dd><code>Refactored delete-user
tests with `gotoAuthURL`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-a9d249f139e75a681888115b925e171c856c94f99c4077be6d954be4e58e0d74">+2/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>edit-user.test.ts</strong><dd><code>Refactored edit-user
tests with `gotoAuthURL`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-fc232b4d225c1367489733ede6bf5ebe88967b0353aa76c88c5e712c35b31be5">+2/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>verify-user.test.ts</strong><dd><code>Refactored verify-user
tests with `gotoAuthURL`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-a8425690a42ed772a97d3a17f062cb5713cc3180032c1d5eb1ef3f6d55cc110e">+2/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>create-table.test.ts</strong><dd><code>Added
`updatePageContext` to create-table tests</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-1e7aa9f3e379ca90a94b82c14be48e2c98a722d85ee1b0785a082b7076d8e58c">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>delete-table.test.ts</strong><dd><code>Added
`updatePageContext` to delete-table tests</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-9e8c87f8e8f11bcfa2b7b2e5cf9dffe54a0fdeb3385ccb82b74e4e1c18fb9c43">+7/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>permissions-table.test.ts</strong><dd><code>Added
`updatePageContext` to permissions-table tests</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-f4b586f5b8f3bb97ddf64f8f38c461ac0424e101789f61e325d1b80bb8dc1047">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>overview.test.ts</strong><dd><code>Integrated
`updatePageContext` in overview tests</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-4c6f1ff0b9d3b7fc7517aa50d9002bed56902f5b31557fa460f633f98da9cf01">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>run.test.ts</strong><dd><code>Integrated `updatePageContext`
in run tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-3b81821630a8e66e8f580609a834499bdfec9ac228ff07b99f398ec07c329095">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>utils.ts</strong><dd><code>Added `updatePageContext` and
`gotoAuthURL` utility functions</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3248/files#diff-490448aa83585151d8c61d698273c43486fdcac6a5d28a9b7e5be2729bbffd12">+13/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></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-03-20 14:46:42 +01:00
David Barroso
a941e237b5 chore: ci: bring back nix cache (#619)
### **PR Type**
Enhancement, Configuration changes


___

### **Description**
- Implement Nix cache for faster builds

- Add permissions check for PR runs

- Update CI workflows for better security

- Refactor Docker image building process


___



### **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>checks.yaml</strong><dd><code>Add permissions check and
Nix cache to checks workflow</code>&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/checks.yaml

<li>Add permissions check job<br> <li> Include Nix cache secrets in
workflow<br> <li> Remove 'safe_to_test' label after checks<br> <li>
Update job dependencies and secrets


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/619/files#diff-4af11422a4987e947e5a47adead7a30d32cdb2db82e2d3fe36f8e6cbe84d5ac5">+35/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_build_artifacts.yaml</strong><dd><code>Refactor
build artifacts workflow with Nix caching</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/wf_build_artifacts.yaml

<li>Replace DOCKER input with AWS and Nix cache secrets<br> <li> Update
runner OS and architecture<br> <li> Implement Nix cache verification and
pushing<br> <li> Refactor Docker image building process


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/619/files#diff-63d6f3e2e5894df4d88cf2c82b3d0c90e7b0b7c8ca9da25a3d46f35f15270fb0">+45/-24</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_check.yaml</strong><dd><code>Enhance check workflow
with Nix caching and AWS integration</code></dd></summary>
<hr>

.github/workflows/wf_check.yaml

<li>Add AWS and Nix cache configuration<br> <li> Implement build
verification using Nix store<br> <li> Update runner to use ARM
architecture<br> <li> Add workflow telemetry collection


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/619/files#diff-c2ecea6736037ba6304681d744d612d44d7681788d2fbc58ce223cf52ecefa43">+43/-30</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>wf_docker_push_image.yaml</strong><dd><code>Simplify
Docker manifest creation in push workflow</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/wf_docker_push_image.yaml

- Simplify Docker manifest creation command


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/619/files#diff-a0b87bcebe9e143aeb58a882e2bcf531709c6950d6845ababf624eb125eed691">+1/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>release.yaml</strong><dd><code>Update release workflow
with Nix cache secrets</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/release.yaml

<li>Add Nix cache secrets to jobs<br> <li> Remove DOCKER input, likely
handled elsewhere


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/619/files#diff-e426ed45842837026e10e66af23d9c7077e89eacbe6958ce7cb991130ad05ada">+9/-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-03-18 16:51:12 +01:00
Alex
9b24807562 fix (dashboard) Update DatabasePiTRSettings.tsx to point to actual PiTR documentation (#3243)
Updated the docsLink of `DatabasePiTRSettings.tsx` to point to the
actual documentation of PiTR

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-03-18 12:31:53 +01:00
David BM
15421321f4 fix (ci): update PNPM dependencies to fix audit security vulnerabilities (#3236)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Update Babel dependencies to latest versions

- Add overrides for Babel runtime and helpers

- Address security vulnerabilities in dependencies

- Improve CI/CD pipeline security and stability


___



### **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>package.json</strong><dd><code>Update Babel and address
dependency vulnerabilities</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

package.json

<li>Updated Babel core and plugin dependencies<br> <li> Added overrides
for @babel/runtime and @babel/helpers<br> <li> Updated various
dependency version constraints<br> <li> Addressed multiple security
vulnerabilities in dependencies


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3236/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+6/-4</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-03-14 15:31:18 +01:00
github-actions[bot]
a4790c6eac chore: update versions (#3238)
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.24.0

# @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

- f1052a8: fix: improve stability of the dashboard when pausing projects
-   30daa41: fix: update links to docs in overview page
-   7537237: feat: add image preview toggle in storage

## 2.14.0

### Minor Changes

- d43931e: fix: invalid organization slug/project subdomain doesn't open
404 page
- 5df6fa2: feat: add unencrypted disk warning in storage capacity
settings

### Patch Changes

-   44c1e17: chore: update `msw` to v1.3.5 to fix vulnerabilities
    -   @nhost/react-apollo@16.0.0
    -   @nhost/nextjs@2.2.1

## 2.13.0

### Minor Changes

- 21e90da: chore: remove restrictions on SMTP sender so My Name
[name@acme.com](mailto:name@acme.com) can be added
- 865dd93: fix: duplicate Run placeholders when there is an error in the
backend
- 6902a36: fix: can remove resources if postgres capacity is higher than
10
-   a535aa3: fix: fetch user roles locally in auth section
-   0c50816: fix: allow decimal numbers in database row insert
- aea6d18: chore: add warning when pausing a project about losing Run
services persistent volume data
- d3b4fc3: feat: allow to change postgres settings if project is paused
-   29d27e1: chore: update `next` to v14.2.22 to fix vulnerabilities
-   c9dca09: feat: add reset password form
-   b3bcacb: fix: paused project banner cannot read null project name

### Patch Changes

-   Updated dependencies [46fc520]
-   Updated dependencies [29d27e1]
    -   @nhost/nextjs@2.2.0
    -   @nhost/react-apollo@15.0.1

## 2.12.0

### Minor Changes

- eb95562: fix: show all available permission variables in permission
dropdown select

### Patch Changes

- 8b5c4a0: chore: cleanup layout and add disable duplicate atom key
checking in development mode

## 2.11.3

### Patch Changes

- 714dffa: fix: improve project polling logic and unify usage across
components

## 2.11.2

### Patch Changes

- 6a34f89: fix: improve project polling logic and unify usage across
components

## 2.11.1

### Patch Changes

-   0f6ce52: fix: consolidate useProject hook and fix jwt expired error

## 2.11.0

### Minor Changes

-   cea3ef5: Feat: add org and project placeholders

## 2.10.0

### Minor Changes

-   86ecf27: feat: add support for additional metrics in overview
- 21708be: feat: dashboard: add support for storage buckets to AI
assistants

## 1.30.0

### Minor Changes

- 50441a8: feat: add ui for project autoscaler settings and run services
autoscaler settings

## 1.29.0

### Minor Changes

-   55d8bb5: feat: integrate turnstile for signup verification
-   2a2e54c: fix: update docs url in run services form tooltip
- 18f942f: fix: display long error messages in error toast without
overflow

### Patch Changes

-   @nhost/react-apollo@13.0.0
-   @nhost/nextjs@2.1.22

## 1.28.2

### Patch Changes

- 52a38fe: chore: update dependencies to address security
vulnerabilities
-   Updated dependencies [52a38fe]
    -   @nhost/nextjs@2.1.21

## 1.28.1

### Patch Changes

-   9735fa2: chore: remove broken link

## 1.28.0

### Minor Changes

- 526183a: feat: allow filtering users in "make request as" in graphql
section
-   be3b85b: feat: add conceal errors toggle on auth settings page

### Patch Changes

- 35a2f12: fix: prevent run service details from opening when attempting
to delete
    -   @nhost/react-apollo@12.0.6
    -   @nhost/nextjs@2.1.20

## 1.27.0

### Minor Changes

-   a7cd02c: fix: resolve rate limit query

## 1.26.0

### Minor Changes

-   3773ad7: chore: update pricing information
- b63250d: fix: not allow run service creation form resubmission while
creating a run service
-   a44a1d4: feat: add rate limits settings page

### Patch Changes

-   @nhost/react-apollo@12.0.5
-   @nhost/nextjs@2.1.19

## 1.25.0

### Minor Changes

- d1ceede: feat: add setting to migrate postgres major and/or minor
versions
- e5d3d1a: fix: allow manually typing column for custom check in
database row permissions

### Patch Changes

-   @nhost/react-apollo@12.0.4
-   @nhost/nextjs@2.1.18

## 1.24.1

### Patch Changes

- 49f2e55: fix: use service subdomain in service form and service
details dialog
- 598b988: fix: use current project subdomain in ServiceDetailsDialog
component

## 1.24.0

### Minor Changes

-   abb24af: chore: add redirect to support page when project is locked
- 18a6455: feat: show contact us info and locked reason when project is
locked

### Patch Changes

-   e31eefa: fix: include ingresses field when updating run services

## 1.23.0

### Minor Changes

-   33284d3: fix: don't show double scrollbar in configuration editor

### Patch Changes

-   @nhost/react-apollo@12.0.3
-   @nhost/nextjs@2.1.17

## 1.22.0

### Minor Changes

-   998c037: fix: align drop-down list in select component
- 807b8c0: fix: show city name in region selection for project creation

## 1.21.0

### Minor Changes

- a2efeed: fix: improve project health error handling, add unknown state
and polling interval for health state

## 1.20.0

### Minor Changes

- 8ea4210: fix: error toasts can be closed individually, instead of
dismissing all toasts at once
- 58919ba: chore: add blink animation when project health service is
updating

## 1.19.0

### Minor Changes

- b519862: fix: get configuration in configuration editor using local
development environment

## 1.18.0

### Minor Changes

- 502abad: feat: add services health checks indicators to the overview
page
-   b3ff6ad: chore: update title text on service status modal
- dbadf59: feat: add project configuration TOML editor to the settings
page

## 1.17.0

### Minor Changes

- 77fba27: fix: postgres version validation when activating ai in ai
settings page
-   ac6d1b6: feat: use name instead of awsName

## 1.16.3

### Patch Changes

- 87a37cf: fix: remove unnecessary isPlatform check from verify button
disable logic on custom domains
    -   @nhost/react-apollo@12.0.2
    -   @nhost/nextjs@2.1.16

## 1.16.2

### Patch Changes

- a9413af: fix: update `GetAllWorkspacesAndProjects` query polling to
use exponential backoff
    -   @nhost/react-apollo@12.0.1
    -   @nhost/nextjs@2.1.15

## 1.16.1

### Patch Changes

-   @nhost/react-apollo@12.0.0
-   @nhost/nextjs@2.1.14

## 1.16.0

### Minor Changes

- c6d5c5c: feat: add toggle switch to enable/disable public access in
the database settings

## 1.15.2

### Patch Changes

-   @nhost/react-apollo@11.0.4
-   @nhost/nextjs@2.1.13

## 1.15.1

### Patch Changes

-   @nhost/react-apollo@11.0.3
-   @nhost/nextjs@2.1.12

## 1.15.0

### Minor Changes

-   a7bde37: feat: send metadata in the edit form

### Patch Changes

- 1bc615b: feat: improve error message handling in `ErrorToast`
component
    -   @nhost/react-apollo@11.0.2
    -   @nhost/nextjs@2.1.11

## 1.14.0

### Minor Changes

-   a448d7d: feat: allow configuring postmark and delete SMTP settings

## 1.13.3

### Patch Changes

-   5924bc3: fix: include password in `GetSmtpSettings` query
- c5ad634: fix: resolved an issue where one-click install links were
broken on Safari
- 7278991: fix: update graphql auto-embeddings configuration to use
String type for model field

## 1.13.2

### Patch Changes

-   026f84f: fix: use configuration server URL from environment variable

## 1.13.1

### Patch Changes

-   7e9a2ce: fix: resolve issue where run services form fails to open

## 1.13.0

### Minor Changes

-   dd5d262: feat: add model field to the auto-embeddings form
- 09962be: feat: enable settings and run services when running the
dashboard locally
- 9cdecb6: feat: enable users to update their email address from the
account settings page

## 1.12.2

### Patch Changes

-   c195c51: fix: send email upon signin for unverified users

## 1.12.1

### Patch Changes

- 93ebdf8: fix: use service urls when initilizaing NhostClient running
local dashboard
    -   @nhost/react-apollo@11.0.1
    -   @nhost/nextjs@2.1.10

## 1.12.0

### Minor Changes

- f242e4b: feat: add connect with github to the user's account settings
-   768ca17: chore: update dependencies
- d62bd0f: fix: "Track this" option within the SQL editor now correctly
updates the metadata
- 91c2bb6: feat: refactor sign-in and sign-up pages to enforce email
verification

### Patch Changes

-   943831f: fix: resolve an error toast issue when unpausing a project
-   Updated dependencies [768ca17]
    -   @nhost/react-apollo@11.0.0
    -   @nhost/nextjs@2.1.9

## 1.11.2

### Patch Changes

-   @nhost/react-apollo@10.0.2
-   @nhost/nextjs@2.1.8

## 1.11.1

### Patch Changes

-   981404f: fix: set default value for healthCheck field validation

## 1.11.0

### Minor Changes

- 7789469: chore: upgrade dependency `@graphql-codegen/cli` to `5.0.2`
to address vulnerability
- 6c11b75: feat: add update user displayName section in account settings

### Patch Changes

-   @nhost/react-apollo@10.0.1
-   @nhost/nextjs@2.1.7

## 1.10.0

### Minor Changes

-   49a80c2: chore: update dependencies
-   150c04a: feat: add healthcheck config to run services

### Patch Changes

- e03f141: fix: allow insert, update and delete on tables in `auth` and
`storage` schemas
- 28676f4: feat: add min postgres version check to enable the ai service
-   Updated dependencies [49a80c2]
    -   @nhost/react-apollo@10.0.0
    -   @nhost/nextjs@2.1.6

## 1.9.0

### Minor Changes

-   d86e5c9: feat: add support for filtering the logs using a RegExp

## 1.8.3

### Patch Changes

-   @nhost/react-apollo@9.0.3
-   @nhost/nextjs@2.1.5

## 1.8.2

### Patch Changes

- 6df4f02: fix: use custom error toast and show correct message when
sending an invite

## 1.8.1

### Patch Changes

-   @nhost/react-apollo@9.0.2
-   @nhost/nextjs@2.1.4

## 1.8.0

### Minor Changes

- 713d53c: feat: add catch-all route for workspace/project - useful for
documentation

### Patch Changes

-   3db2999: fix: refresh table list after running SQL using the editor
- 3c4dd55: fix: handle `Error` objects properly in the `ErrorToast`
component
- 92b434e: fix: resolve an issue where the checkbox in the data-grid
header did not select all rows
    -   @nhost/react-apollo@9.0.1
    -   @nhost/nextjs@2.1.3

## 1.7.0

### Minor Changes

-   0d8d0eb: Update docs and dashboard references

## 1.6.9

### Patch Changes

-   @nhost/react-apollo@9.0.0
-   @nhost/nextjs@2.1.2

## 1.6.8

### Patch Changes

-   @nhost/react-apollo@8.0.1
-   @nhost/nextjs@2.1.1

## 1.6.7

### Patch Changes

-   5ef5189: fix: update `@apollo/client` to `3.9.4` to fix a cache bug

## 1.6.6

### Patch Changes

-   3ba485e: fix: added discord.com to connect-src
-   e5bab6a: chore: update dependencies
-   Updated dependencies [b19ffed]
-   Updated dependencies [e5bab6a]
    -   @nhost/nextjs@2.1.0
    -   @nhost/react-apollo@8.0.0

## 1.6.5

### Patch Changes

- ba73bb4: fix: update ErrorToast component to show the internal graphql
error
- d5337ff: fix: utilize accumulator in the creation of validation schema
within data grid utils

## 1.6.4

### Patch Changes

-   7c2a1c2: feat: show error and debug info in the error toast

## 1.6.3

### Patch Changes

-   6b8aad5: fix: add bare nhost.run to CSP

## 1.6.2

### Patch Changes

-   b18edc0: feat: added CSP and X-Frame-Options

## 1.6.1

### Patch Changes

-   8d91f71: chore: update deps and enable pnpm audit
- 3b8473b: chore: update turbo to `1.11.3` and pnpm to `8.10.5` in
Dockerfile
-   Updated dependencies [8d91f71]
    -   @nhost/react-apollo@7.0.2
    -   @nhost/nextjs@2.0.2

## 1.6.0

### Minor Changes

-   3ff1c2b53: fix: show upgrade option for pro projects

## 1.5.0

### Minor Changes

-   c2ef17c0a: feat: add support for new Team plan

## 1.4.0

### Minor Changes

-   7883bbcbd: feat: don't show deprecated plans
- 44be6dc0a: feat: set redirectTo during sign-in to support preview
environments

### Patch Changes

- 3c3594898: fix: allow access to graphite when configured running in
local dashboard
-   32c246b7a: chore: update docs icon

## 1.3.2

### Patch Changes

-   174b4165b: chore: use env variables when running graphql codegen
-   7c977e714: chore: change `Allowed Roles` to `Default Allowed Roles`
-   46f028b9f: fix: remove hardcoded ai version setting

## 1.3.1

### Patch Changes

- af33c21d1: chore: remove backendUrl deprecation notice and remove all
references to `providersUpdated`

## 1.3.0

### Minor Changes

-   04784d880: Fix graphite's default version

## 1.2.0

### Minor Changes

-   5733162ed: feat: add settings and ui for graphite

## 1.1.0

### Minor Changes

-   e2b79b5ec: chore: remove sharp from deps

## 1.0.1

### Patch Changes

-   @nhost/react-apollo@7.0.1
-   @nhost/nextjs@2.0.1

## 1.0.0

### Major Changes

- bc9eff6e4: chore: remove support for using backendUrl when
instantiating the Nhost client

### Patch Changes

-   Updated dependencies [bc9eff6e4]
    -   @nhost/nextjs@2.0.0
    -   @nhost/react-apollo@7.0.0

## 0.21.1

### Patch Changes

-   97ced73a3: fix(dashboard): prevent dashboard from resolving secrets

## 0.21.0

### Minor Changes

- ed1a8d458: Update alert message on increasing PostgreSQL's volume
capacity
-   2e2248fd4: feat(dashboard): add SQL editor

## 0.20.28

### Patch Changes

-   7c2c31082: feat: add support for users to delete their account
    -   @nhost/react-apollo@6.0.1
    -   @nhost/nextjs@1.13.40

## 0.20.27

### Patch Changes

- fa79b7709: chore(dashboard): tweaks and fixes to the service form and
dialog
-   8df84d782: fix(dashboard): allow resetting custom domains
    -   @nhost/react-apollo@6.0.0
    -   @nhost/nextjs@1.13.39

## 0.20.26

### Patch Changes

- 331ba0376: feat(dashboard): add postgres storage capacity modifier in
the settings
-   b7f801874: feat(dashboard): add new settings page for custom domains

## 0.20.25

### Patch Changes

-   @nhost/react-apollo@5.0.38

## 0.20.24

### Patch Changes

-   e10389ecf: fix(dashboard): disable run tab when developing locally
    -   @nhost/react-apollo@5.0.37

## 0.20.23

### Patch Changes

-   c01568a7d: chore(dashboard): show alert to update oauth providers

## 0.20.22

### Patch Changes

-   c3efb7ec8: feat(dashboard): query latest announcement from platform

## 0.20.21

### Patch Changes

-   3e46d3873: chore: update link to node18 announcement

## 0.20.20

### Patch Changes

-   @nhost/react-apollo@5.0.36
-   @nhost/nextjs@1.13.38

## 0.20.19

### Patch Changes

-   75c4c8ae3: feat(dashboard): make env value input multiline

## 0.20.18

### Patch Changes

- 425d485f8: fix(dashboard): make sure dedicated resources pricing
follows total resources

## 0.20.17

### Patch Changes

-   ae324f67f: fix(dashboard): remove unused graphql fields

## 0.20.16

### Patch Changes

-   df5b4302c: chore(dashboard): remove run feature flag
- bf4a1f6c2: feat(dashboard): fetch auth, postgres, hasura and storage
versions from dashboard
- 34fc08ca7: fix(dashboard/run): show correct private registry in
service details
-   885d10620: chore(dashboard): change feedback to contact us

## 0.20.15

### Patch Changes

- ed16c8b5d: feat(run): add a confirmation dialog when deleting a run
service
- 216990888: fix(run): center loading indicator when selecting a project

## 0.20.14

### Patch Changes

-   9fbea9787: feat: add node18 announcement

## 0.20.13

### Patch Changes

- e84acf469: fix(run): handle subdomain undefined error when creating a
new service

## 0.20.12

### Patch Changes

-   b7c799d62: feat(run): add dialog to copy registry and URLs

## 0.20.11

### Patch Changes

-   8903e6abd: fix(dashboard): show correct egress limit in usage stats

## 0.20.10

### Patch Changes

- 666a75a23: feat(dashboard): add functions execution time and egress
volume to usage stats

## 0.20.9

### Patch Changes

-   5e1e80aa8: fix(dashboard): show correct locales in user details
    -   @nhost/react-apollo@5.0.35
    -   @nhost/nextjs@1.13.37

## 0.20.8

### Patch Changes

-   @nhost/react-apollo@5.0.34
-   @nhost/nextjs@1.13.36

## 0.20.7

### Patch Changes

-   4a7ede11e: fix: distinguish files that were not uploaded
- 202b64723: feat(nhost-run): add support for one-click-install run
services
- 074a0fa11: feat(dashboard): add settings toggle to enable/disable
antivirus
    -   @nhost/react-apollo@5.0.33
    -   @nhost/nextjs@1.13.35

## 0.20.6

### Patch Changes

-   b20761e97: feat(services): add pricing info and confirmation dialog
-   90df6d81d: fix(services): handle null values when editing a service
-   aa8508467: fix: query service logs correctly
    feat: enable multiline support for environment value input

## 0.20.5

### Patch Changes

-   8d7f84b8d: fix: make announcement adapt to theme

## 0.20.4

### Patch Changes

-   3b75bfce2: fix: make announcement close properly
- f49819075: fix: show correct values when dedicated resources are
disabled

## 0.20.3

### Patch Changes

-   e643bd362: fix(services): fix errors when config is null
-   bcdab66bf: feat: add annoucement for nhost run
-   f967a2e59: added note about storage not being able to be downsized
-   311c7756d: chore(services): consistent naming for compute

## 0.20.2

### Patch Changes

-   9073182d5: chore(dashboard): bump `turbo` to 1.10.11
-   ece717d6e: feat(logs): show services in the logs page
- 82b335311: feat(metrics): change grafana link to point to the
dashboards
- b135ef695: fix(services): set command as optional and set min replicas
to 0

## 0.20.1

### Patch Changes

-   3d5c34f4c: fix(auth): fix users pagination limit

## 0.20.0

### Minor Changes

-   c99d117d1: feat(services): add support for custom services

## 0.19.2

### Patch Changes

-   face99ccd: chore(deps): bump turbo version
-   cfe527307: style: tweak pull config warning in dark mode
- a9d7da8af: chore(deps): update dependency @types/pluralize to ^0.0.30
-   9aa4371ef: chore: add hasura-auth version 0.21.2
- d14e112bf: chore(deps): update dependency prettier-plugin-tailwindcss
to ^0.4.0
-   d3e8bb94a: chore(deps): update dependency vite-plugin-dts to v3

## 0.19.1

### Patch Changes

-   @nhost/react-apollo@5.0.32
-   @nhost/nextjs@1.13.34

## 0.19.0

### Minor Changes

- 9c61c69a7: chore(dashboard):add postgres 14.6-20230705-1 to the
version selector

### Patch Changes

-   47bda15ff: feat(settings): add warning to pull config

## 0.18.0

### Minor Changes

- ee0b9b8ed: chore(dashboard):add hasura v2.28.2 and v2.29.0 to the
version selector

## 0.17.20

### Patch Changes

-   @nhost/react-apollo@5.0.31
-   @nhost/nextjs@1.13.33

## 0.17.19

### Patch Changes

-   f866120a6: fix(users): use the password length from the config

## 0.17.18

### Patch Changes

-   @nhost/react-apollo@5.0.30
-   @nhost/nextjs@1.13.32

## 0.17.17

### Patch Changes

-   ea7b102c0: fix(pat): highlight expired tokens

## 0.17.16

### Patch Changes

- b3b64a3b7: chore(deps): bump `@types/react` to `v18.2.14` and
`@types/react-dom` to `v18.2.6`
-   32b221f94: chore(deps): bump `graphiql` to `v3`
-   3a56c12df: chore(deps): bump `turbo` to `v1.10.6`
-   Updated dependencies [b3b64a3b7]
    -   @nhost/react-apollo@5.0.29
    -   @nhost/nextjs@1.13.31

## 0.17.15

### Patch Changes

-   f41fdc12a: chore(deps): bump `turbo` to `1.10.5`
-   6199c1c55: fix(projects): don't redirect to 404 page
-   Updated dependencies [07a45fde0]
    -   @nhost/react-apollo@5.0.28
    -   @nhost/nextjs@1.13.30

## 0.17.14

### Patch Changes

- 80b22724d: chore(deps): bump `@types/react` to `v18.2.13`,
`@types/react-dom` to `v18.2.6` and `@storybook/testing-library` to
`v0.2.0`

## 0.17.13

### Patch Changes

-   cc02902cb: chore(docs): update environment variable documentation

## 0.17.12

### Patch Changes

-   660d339e1: fix(storybook): don't break storybook
-   660d339e1: fix(tests): prevent warnings during tests
    -   @nhost/react-apollo@5.0.27
    -   @nhost/nextjs@1.13.29

## 0.17.11

### Patch Changes

- bd4d0c270: chore(dashboard):add postgres 14.6-20230613-1 to the
version selector

## 0.17.10

### Patch Changes

-   c8c2a10b2: fix(database): don't break the password reset flow
- e70b45498: chore(deps): bump `@types/react` to `v18.2.12` and
`@types/react-dom` to `v18.2.5`

## 0.17.9

### Patch Changes

- 842055099: chore(deps): bump `turbo` to `v1.10.3` and `pnpm` to
`v8.6.2`
- fd12aa0a8: chore(projects): remove the postgres password input from
the project creation screen
-   022b76e78: chore(deps): bump `@types/react` to `v18.2.11`
-   3555ab2b7: chore(deps): bump `vitest` monorepo to `v0.32.0`
-   c43e54922: feat(backups): add download button to backups

## 0.17.8

### Patch Changes

-   d0457fe5c: feat(settings): improve the dashboard and config parity
    -   @nhost/react-apollo@5.0.26
    -   @nhost/nextjs@1.13.28

## 0.17.7

### Patch Changes

-   4f0368b95: fix(account): don't break account settings page

## 0.17.6

### Patch Changes

- 64a8f41d0: chore(resources): lower the maximum allowed resources per
service

## 0.17.5

### Patch Changes

-   @nhost/react-apollo@5.0.25
-   @nhost/nextjs@1.13.27

## 0.17.4

### Patch Changes

- 9b1d0f7a5: fix(deployments): use correct timestamp for deployment
details
-   6d2963ffa: chore(deps): bump `@types/react` to `v18.2.8`
- 8871267b9: chore(deps): downgrade `pnpm` to `v8.5.1` because of no
Turborepo support

## 0.17.3

### Patch Changes

-   01eeef9de: chore(misc): under the hood improvements
- 21e13db05: chore(deps): bump `@types/react` to `v18.2.7` and `turbo`
to `v1.10.1`
- f16433ae6: chore(secrets): allow empty secrets and environment
variables
-   aa3c62989: chore(cli): bump Nhost CLI version to v1.0
    -   @nhost/react-apollo@5.0.24
    -   @nhost/nextjs@1.13.26

## 0.17.2

### Patch Changes

-   88a4983f: chore(misc): under the hood improvements

## 0.17.1

### Patch Changes

-   9b0d4dde: feat(secrets): enable secrets

## 0.17.0

### Minor Changes

-   15d84a19: Add postgres 14.6-20230525

## 0.16.14

### Patch Changes

-   4c626174: chore: updated import paths, improved directory structure
-   cc047b71: chore(deps): bump `@fontsource` monorepo to `v5.0.0`
-   99edd012: feat(account): add support for personal access tokens

## 0.16.13

### Patch Changes

-   78c7109c: feat(settings): allow selecting service versions

## 0.16.12

### Patch Changes

- 399009d6: fix(gql): don't enter an infinite loop when fetching remote
app data
- 329e5a91: fix(deployments): use the same sorting of deployments
everywhere
- 6d559d6e: chore(settings): add under the hood improvements to the
settings page
- 12eb236c: chore(deps): bump `prettier-plugin-tailwindcss` to `v0.3.0`
-   f9b81a2a: chore(deps): bump `turbo` to `v1.9.8`
-   1345741b: fix(projects): don't redirect to 404 on project creation
-   Updated dependencies [7fea29a8]
    -   @nhost/react-apollo@5.0.23
    -   @nhost/nextjs@1.13.25

## 0.16.11

### Patch Changes

- 1230b722: fix(projects): don't redirect to 404 on when the project is
renamed
    -   @nhost/react-apollo@5.0.22
    -   @nhost/nextjs@1.13.24

## 0.16.10

### Patch Changes

-   Updated dependencies [da03bf39]
    -   @nhost/react-apollo@5.0.21
    -   @nhost/nextjs@1.13.23

## 0.16.9

### Patch Changes

- 349aac36: fix(settings): use region domain when constructing the
postgres connection string

## 0.16.8

### Patch Changes

- 20fb69fa: chore(projects): change the way how API URLs are constructed

## 0.16.7

### Patch Changes

- 49f9b837: chore(docker): bump `pnpm` to `v8.4.0` and `turbo` to
`v1.9.3`
- 3f478a4e: chore(deps): bump `vitest` to `v0.31.0`, `@types/react` to
`v18.2.6` and `@types/react-dom` to `v18.2.4`

## 0.16.6

### Patch Changes

- d926f156: fix(projects): redirect to 404 when an invalid project is
opened
- 49b99728: fix(projects): disable features for non-owner members of
workspaces

## 0.16.5

### Patch Changes

-   12e2855f: chore(deps): bump `jsdom` to v22
-   e4972b83: feat(metrics): add Grafana page

## 0.16.4

### Patch Changes

- 3f396a9e: fix(projects): unpause after upgrading a paused project to
pro
- 3f396a9e: fix(projects): don't redirect to 404 page after project
creation

## 0.16.3

### Patch Changes

-   Updated dependencies [90c60311]
    -   @nhost/react-apollo@5.0.20
    -   @nhost/nextjs@1.13.22

## 0.16.2

### Patch Changes

-   0f34f0c6: fix(projects): disallow downgrading to free plan
- 8da291ad: chore(deps): bump `@types/react` to v18.2.0 and
`@types/react-dom` to v18.2.1

## 0.16.1

### Patch Changes

- adc828a5: fix(gql): don't enter an infinite loop when fetching remote
app data

## 0.16.0

### Minor Changes

-   2fb1145f: feat(compute): add support for replicas

### Patch Changes

- d8ceccec: chore(env): remove deprecated `NHOST_BACKEND_URL`
environment variable

## 0.15.2

### Patch Changes

-   84b84ab7: fix(projects): filter projects by workspace

## 0.15.1

### Patch Changes

-   2faf7907: chore(deps): bump `graphql-request` to v6
-   f1b5a944: chore(deps): bump `@vitejs/plugin-react` to v4
-   7f1785ac: chore(deps): bump `@types/react` to v18.0.37
    -   @nhost/react-apollo@5.0.19

## 0.15.0

### Minor Changes

-   85889ee8: feat(dashboard): add Compute management to the settings

## 0.14.8

### Patch Changes

-   668c8771: chore(dialogs): unify dialog management of payment dialogs

## 0.14.7

### Patch Changes

-   d4ccc656: chore: cleanup unused code
    -   @nhost/react-apollo@5.0.18
    -   @nhost/nextjs@1.13.21

## 0.14.6

### Patch Changes

-   b299cfc9: chore(deps): bump `vitest` to v0.30.0
-   411cb65b: chore(projects): refactor workspace and project hooks
- 43b1b144: chore(deps): bump `@types/react` to v18.0.34 and
`@types/react-dom` to v18.0.11
-   Updated dependencies [43b1b144]
    -   @nhost/react-apollo@5.0.17
    -   @nhost/nextjs@1.13.20

## 0.14.5

### Patch Changes

-   ba0d57ee: fix(i18n): revert i18n library
-   3328ed05: feat(projects): improve overview when there is an error

## 0.14.4

### Patch Changes

-   5e0920ba: chore(deps): bump `next-seo` to v6
-   706c9dc3: chore(deps): bump `@types/react` to 18.0.33
-   99f8f6b3: feat(metrics): show metrics on the overview

## 0.14.3

### Patch Changes

-   @nhost/react-apollo@5.0.16

## 0.14.2

### Patch Changes

-   3cb67300: fix(logs): don't break UI when clearing time picker
-   7453bf3b: feat(projects): show project creator info
-   c166dad0: chore(tests): improve auth page tests
-   6a290bb2: chore(deps): bump `@types/react` to 18.0.32

## 0.14.1

### Patch Changes

-   @nhost/react-apollo@5.0.15
-   @nhost/nextjs@1.13.19

## 0.14.0

### Minor Changes

-   6e1f03ea: feat(dashboard): add support for the Azure AD provider

### Patch Changes

-   1bd2c373: chore(deps): bump `turbo` to 1.8.6
-   d329b621: chore(deps): bump `@types/react` to 18.0.30
-   cb248f0d: fix(tests): avoid name collision in database tests
-   867c8076: chore(deps): bump `@types/react` to 18.0.29

## 0.13.10

### Patch Changes

- e93b06ab: fix(dashboard): remove left margin from workspace list on
mobile
-   1c4806bf: chore(deps): bump `sharp` to 0.32.0
    -   @nhost/react-apollo@5.0.14
    -   @nhost/nextjs@1.13.18

## 0.13.9

### Patch Changes

-   912ed76c: chore(dashboard): bump `@apollo/client` to 3.7.10
-   Updated dependencies [912ed76c]
    -   @nhost/react-apollo@5.0.13

## 0.13.8

### Patch Changes

-   7c127372: chore(dashboard): bump `react-error-boundary` to v4

## 0.13.7

### Patch Changes

- 9130ab12: chore(dashboard): bump `yup` to v1 and `@hookform/resolvers`
to v3

## 0.13.6

### Patch Changes

- 253dd235: using new mutation to create projects + refactor Create
Project page.

## 0.13.5

### Patch Changes

-   @nhost/react-apollo@5.0.12
-   @nhost/nextjs@1.13.17

## 0.13.4

### Patch Changes

-   b48bc034: fix(dashboard): disable new users
-   798e591b: fix(dashboard): show correct date in data grid

## 0.13.3

### Patch Changes

-   bfb4c1a6: chore(dashboard): remove `useAxios` property
-   d8d8394b: Dashboard: allow to override hasura admin secret in docker
-   Updated dependencies [ce1ee40d]
    -   @nhost/nextjs@1.13.16
    -   @nhost/react-apollo@5.0.11

## 0.13.2

### Patch Changes

-   beed2eba: Fix docker entrypoint for dashboard
- 2c8559a3: fix(dashboard): refresh project list after deleting a
project
-   4329d048: chore(dashboard): bump `graphiql` dependencies

## 0.13.1

### Patch Changes

-   cbb1fc5b: chore(dashboard): cleanup GraphQL operations

## 0.13.0

### Minor Changes

-   088584e7: feat(dashboard): add support for custom local subdomains

### Patch Changes

-   2ac90dfd: fix(dashboard): improve mobile responsive layout
-   Updated dependencies [f375eacc]
    -   @nhost/nextjs@1.13.15
    -   @nhost/react-apollo@5.0.10

## 0.12.4

### Patch Changes

-   @nhost/react-apollo@5.0.9
-   @nhost/nextjs@1.13.14

## 0.12.3

### Patch Changes

-   2b1338f7: chore(dashboard): bump `turbo` to 1.8.3
- 5223ee93: fix(dashboard): show correct deployment status on the main
page
-   850a049c: chore(deps): update docker/build-push-action action to v4
-   Updated dependencies [850a049c]
    -   @nhost/nextjs@1.13.13
    -   @nhost/react-apollo@5.0.8

## 0.12.2

### Patch Changes

-   4bf40995: chore(deps): bump `typescript` to `4.9.5`
-   8bb097c9: chore(deps): bump `vitest`
- 35d52aab: chore(deps): replace `cross-fetch` with `isomorphic-unfetch`
-   Updated dependencies [4bf40995]
-   Updated dependencies [8bb097c9]
-   Updated dependencies [35d52aab]
    -   @nhost/react-apollo@5.0.7
    -   @nhost/nextjs@1.13.12

## 0.12.1

### Patch Changes

-   c96d7ccd: fix(dashboard): fix docker builds

## 0.12.0

### Minor Changes

-   d1671210: feat(dashboard): use mimir to manage project configuration

### Patch Changes

-   f65e4de9: chore(deps): bump @graphql-codegen monorepo to v3

## 0.11.20

### Patch Changes

-   4b4f0d01: chore(dashboard): improve dialog management

## 0.11.19

### Patch Changes

-   @nhost/react-apollo@5.0.6
-   @nhost/nextjs@1.13.11

## 0.11.18

### Patch Changes

-   01318860: fix(nhost-js): use correct URL for functions requests
-   Updated dependencies [01318860]
    -   @nhost/react-apollo@5.0.5
    -   @nhost/nextjs@1.13.10

## 0.11.17

### Patch Changes

-   f673adea: fix(dashboard): set correct Content-Type for user creation
-   445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
-   445d8ef4: chore(deps): bump `@nhost/nextjs` to 1.13.9
- 0368663d: fix(dashboard): allow permission editing for auth and
storage schemas
-   Updated dependencies [445d8ef4]
-   Updated dependencies [445d8ef4]
    -   @nhost/react-apollo@5.0.4
    -   @nhost/nextjs@1.13.9

## 0.11.16

### Patch Changes

-   b755e908: fix(dashboard): use correct date for last seen
-   2d9145f9: chore(deps): revert GraphQL client
- 1ddf704c: fix(dashboard): don't show false positive message for failed
user creation
    -   @nhost/react-apollo@5.0.3
    -   @nhost/nextjs@1.13.8

## 0.11.15

### Patch Changes

-   @nhost/react-apollo@5.0.2
-   @nhost/nextjs@1.13.7

## 0.11.14

### Patch Changes

- 2cc18dcb: fix(dashboard): prevent permission editor dropdown from
being always open

## 0.11.13

### Patch Changes

- 3343a363: chore(dashboard): bump `@testing-library/react` to v14 and
`@testing-library/dom` to v9
    -   @nhost/react-apollo@5.0.1
    -   @nhost/nextjs@1.13.6

## 0.11.12

### Patch Changes

- 87eda76e: chore(dashboard): bump `@types/react` to v18.0.28 and
`@types/react-dom` to v18.0.11
-   6f0ac570: feat(dashboard): show dashboard version in account menu

## 0.11.11

### Patch Changes

-   bf1e4071: chore(dashboard): bump `react-is` version to `18.2.0`
-   Updated dependencies [bf1e4071]
-   Updated dependencies [5013213b]
    -   @nhost/nextjs@1.13.5
    -   @nhost/react-apollo@4.13.5

## 0.11.10

### Patch Changes

- a37a430b: fix(dashboard): don't break UI when deployments are
unavailable
    -   @nhost/react-apollo@4.13.4
    -   @nhost/nextjs@1.13.4

## 0.11.9

### Patch Changes

-   7b970e68: fix(dashboard): fix header link color

## 0.11.8

### Patch Changes

- f33242f2: feat(dashboard): add new sign up, sign in and reset password
pages

## 0.11.7

### Patch Changes

-   e9c8909c: fix(dashboard): use correct theme color in dark mode

## 0.11.6

### Patch Changes

-   902f486b: fix(dashboard): re-enable Hasura on logs page

## 0.11.5

### Patch Changes

-   1f9720fa: fix(dashboard): apply select permissions properly

## 0.11.4

### Patch Changes

-   deb14b51: fix(dashboard): don't break billing form

## 0.11.3

### Patch Changes

-   @nhost/react-apollo@4.13.3
-   @nhost/nextjs@1.13.3

## 0.11.2

### Patch Changes

-   f143e51d: chore(dashboard): pin Turborepo to 1.6.3

## 0.11.1

### Patch Changes

-   c2b5a41a: chore(dashboard): select system colors by default

## 0.11.0

### Minor Changes

-   1ebaf429: feat(dashboard): introduce Dark Mode 🌚

### Patch Changes

- 63b445c4: fixed duplicated logs bug and made to date count during live
mode

## 0.10.1

### Patch Changes

-   e146d32e: chore(deps): update dependency @types/react to v18.0.27
-   59347fcd: correct allowed role name
-   5b65cac9: updated authentication documentation
-   963f9b5e: feat(dashboard): include project info in feedback

## 0.10.0

### Minor Changes

-   ed4c7801: chore(dashboard): remove Functions section

## 0.9.10

### Patch Changes

-   4e2f8ccd: fix(dashboard): don't break Auth page in local mode

## 0.9.9

### Patch Changes

-   31abbe5f: fix(dashboard): enable toggle when settings are filled in

## 0.9.8

### Patch Changes

- 5bdd31ad: chore(dashboard): list fewer images per page on the Storage
page
- 5121851c: fix(dashboard): don't throw validation error for valid
permission rules

## 0.9.7

### Patch Changes

-   c126b20d: fix(dashboard): correct redeployment button

## 0.9.6

### Patch Changes

-   36c3519c: feat(dashboard): retrigger deployments

## 0.9.5

### Patch Changes

- 200e9f77: chore(deps): update dependency @types/react-dom to v18.0.10
-   Updated dependencies [200e9f77]
    -   @nhost/nextjs@1.13.2
    -   @nhost/react-apollo@4.13.2

## 0.9.4

### Patch Changes

- dbd3ded5: fix(dashboard): workspaces creation, new form, correct
redirects.

## 0.9.3

### Patch Changes

-   85f0f943: fix(dashboard): don't break the table creation process

## 0.9.2

### Patch Changes

-   Updated dependencies [d42c27ae]
-   Updated dependencies [927be4a2]
    -   @nhost/nextjs@1.13.1
    -   @nhost/react-apollo@4.13.1

## 0.9.1

### Patch Changes

-   d0f80811: fix(dashboard): don't show error when signing out the user

## 0.9.0

### Minor Changes

- d92891b2: feat(dashboard): add Permission Editor to the Database
section

### Patch Changes

-   3d379128: fix(dashboard): create new user
    -   @nhost/react-apollo@4.13.0
    -   @nhost/nextjs@1.13.0

## 0.8.1

### Patch Changes

-   7cadd944: fix(dashboard): display Twitter provider settings

## 0.8.0

### Minor Changes

-   9a1aa7bb: add functions to the log dashboard
-   f29abe62: feat(dashboard): Users Management v2

### Patch Changes

-   7766624b: feat(dashboard): add JWT secret editor modal
    -   @nhost/react-apollo@4.12.1
    -   @nhost/nextjs@1.12.1

## 0.7.13

### Patch Changes

-   dd0738d5: fix(dashboard): provisioning status polling

## 0.7.12

### Patch Changes

-   b21222b3: chore(deps): update dependency @types/node to v16
-   9e0486a3: fix(dashboard): close modals when navigating
-   Updated dependencies [b21222b3]
-   Updated dependencies [65687bee]
-   Updated dependencies [54df0df4]
    -   @nhost/nextjs@1.12.0
    -   @nhost/react-apollo@4.12.0

## 0.7.11

### Patch Changes

-   d6527122: fix(dashboard): use correct service URLs

## 0.7.10

### Patch Changes

-   Updated dependencies [57db5b83]
    -   @nhost/nextjs@1.11.0
    -   @nhost/nhost-js@1.7.0
    -   @nhost/react@0.17.0
    -   @nhost/react-apollo@4.11.0

## 0.7.9

### Patch Changes

- a6d31dc2: fix(dashboard): don't break the UI when project is not
loaded yet

## 0.7.8

### Patch Changes

- 7f251111: Use `NhostProvider` instead of `NhostReactProvider` and
`NhostNextProvider`

    `NhostReactProvider` and `NhostNextProvider` are now deprecated

-   f4d70f88: fix(dashboard): do not break when region is nullish

- 4a9471cc: Windows Live Provider displayed link updated to match
backend url

- 594488e4: fix(dashboard): do not show error when submitting Apple
provider settings

-   Updated dependencies [7f251111]
    -   @nhost/nextjs@1.10.0
    -   @nhost/react@0.16.0
    -   @nhost/react-apollo@4.10.0

## 0.7.7

### Patch Changes

-   80b604ad: fix(dashboard): use correct Hasura slug

## 0.7.6

### Patch Changes

-   2d2beb53: fix(dashboard): prevent error on GraphQL page
-   ac8efcbd: chore(dashboard): deprecate old DNS name

## 0.7.5

### Patch Changes

-   132a4f4b: chore(dashboard): remove unused dependencies
- 132a4f4b: chore(deps): synchronize @types/react-dom and @types/react
versions
-   db57572f: fix(dashboard): correct section paddings when no env vars
-   Updated dependencies [132a4f4b]
    -   @nhost/react@0.15.2
    -   @nhost/react-apollo@4.9.2
    -   @nhost/nextjs@1.9.3

## 0.7.4

### Patch Changes

-   34d85e54: chore(deps): update dependency critters to ^0.0.16
- 9b93cf95: chore(deps): update dependency @netlify/functions to ^0.11.0
-   e0439030: chore(deps): update dependency @types/react-dom to v18.0.9
-   Updated dependencies [82124329]
    -   @nhost/nextjs@1.9.2

## 0.7.3

### Patch Changes

-   a1193da4: fix(dashboard): remove character limit from env var inputs

## 0.7.2

### Patch Changes

-   44f13f62: chore(dashboard): cleanup unused files

## 0.7.1

### Patch Changes

- e01cb2ed: chore(dashboard): change settings sidebar menu item density

## 0.7.0

### Minor Changes

- db342f45: chore(dashboard): refactor Roles and Permissions settings
sections
-   8b9fa0b1: feat(dashboard): add Environment Variables page

### Patch Changes

-   Updated dependencies [66b4f3d0]
-   Updated dependencies [2e6923dc]
-   Updated dependencies [ef117c28]
-   Updated dependencies [aebb8225]
    -   @nhost/core@0.9.4
    -   @nhost/nhost-js@1.6.2
    -   @nhost/nextjs@1.9.1
    -   @nhost/react@0.15.1
    -   @nhost/react-apollo@4.9.1

## 0.6.0

### Minor Changes

-   eef9c914: feat(dashboard): add Roles and Permissions page

## 0.5.0

### Minor Changes

-   a48dd5bf: feat(dashboard): make backend port configurable

## 0.4.3

### Patch Changes

-   5de965d9: fix(dashboard): alphabetic ordering of providers
-   b9087a4a: fix(dashboard): console -> dashboard terminology
-   ca012d79: docs(workos): WorkOS Docs

## 0.4.2

### Patch Changes

-   89bd37bc: fix(dashboard): correct redirect URL input opacity
-   Updated dependencies [4601d84e]
-   Updated dependencies [843087cb]
    -   @nhost/react@0.15.0
    -   @nhost/nextjs@1.9.0
    -   @nhost/react-apollo@4.9.0

## 0.4.1

### Patch Changes

-   766cb612: fix(dashboard): correct redirect URL for oauth providers
-   Updated dependencies [53bdc294]
-   Updated dependencies [f2aaff05]
    -   @nhost/nextjs@1.8.3
    -   @nhost/core@0.9.3
    -   @nhost/react@0.14.3
    -   @nhost/nhost-js@1.6.1
    -   @nhost/react-apollo@4.8.3

## 0.4.0

### Minor Changes

-   9211743d: feat(dashboard): migrate Settings page features

## 0.3.0

### Minor Changes

-   73da6a67: fix(dashboard): avoid using BACKEND_URL locally

## 0.2.0

### Minor Changes

-   db118f97: feat(dashboard): generate Docker image

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-14 12:43:51 -01:00
Nuno Pato
992aa997d5 fix: dashboard: remove cspHeader (#3237)
### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Remove Content-Security-Policy header from dashboard

- Fix signup functionality in dashboard

- Update changeset for @nhost/dashboard package


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Security</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>next.config.js</strong><dd><code>Remove
Content-Security-Policy header</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/next.config.js

<li>Commented out Content-Security-Policy header<br> <li> Kept
X-Frame-Options header as DENY


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3237/files#diff-398ac9b04404f14166a89845539399764fecd520ad3e6f0119f8730c0eefa94a">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>serious-pugs-remember.md</strong><dd><code>Add
changeset for dashboard signup fix</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/serious-pugs-remember.md

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


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3237/files#diff-5826d33517df878ffe4d58b7ec7b4b638692f13a397196f9f7b6bb8032cbd01f">+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-03-14 12:29:15 -01:00
Sumit Saurabh
382dc11aaa Update README.md (#3235)
### **User description**
update auth example credential


___

### **PR Type**
Documentation


___

### **Description**
- Update authentication example with generic credentials

- Fix minor formatting issue in README


___



### **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>README.md</strong><dd><code>Update auth example and fix
EOF newline</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

README.md

<li>Replace specific email and password with generic ones<br> <li> Add
newline at the end of the file


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3235/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5">+2/-2</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-03-14 14:46:36 +05:30
github-actions[bot]
1976bc48a5 chore: update versions (#3234)
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.23.0

# @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

- f1052a8: fix: improve stability of the dashboard when pausing projects
-   30daa41: fix: update links to docs in overview page
-   7537237: feat: add image preview toggle in storage

## 2.14.0

### Minor Changes

- d43931e: fix: invalid organization slug/project subdomain doesn't open
404 page
- 5df6fa2: feat: add unencrypted disk warning in storage capacity
settings

### Patch Changes

-   44c1e17: chore: update `msw` to v1.3.5 to fix vulnerabilities
    -   @nhost/react-apollo@16.0.0
    -   @nhost/nextjs@2.2.1

## 2.13.0

### Minor Changes

- 21e90da: chore: remove restrictions on SMTP sender so My Name
[name@acme.com](mailto:name@acme.com) can be added
- 865dd93: fix: duplicate Run placeholders when there is an error in the
backend
- 6902a36: fix: can remove resources if postgres capacity is higher than
10
-   a535aa3: fix: fetch user roles locally in auth section
-   0c50816: fix: allow decimal numbers in database row insert
- aea6d18: chore: add warning when pausing a project about losing Run
services persistent volume data
- d3b4fc3: feat: allow to change postgres settings if project is paused
-   29d27e1: chore: update `next` to v14.2.22 to fix vulnerabilities
-   c9dca09: feat: add reset password form
-   b3bcacb: fix: paused project banner cannot read null project name

### Patch Changes

-   Updated dependencies [46fc520]
-   Updated dependencies [29d27e1]
    -   @nhost/nextjs@2.2.0
    -   @nhost/react-apollo@15.0.1

## 2.12.0

### Minor Changes

- eb95562: fix: show all available permission variables in permission
dropdown select

### Patch Changes

- 8b5c4a0: chore: cleanup layout and add disable duplicate atom key
checking in development mode

## 2.11.3

### Patch Changes

- 714dffa: fix: improve project polling logic and unify usage across
components

## 2.11.2

### Patch Changes

- 6a34f89: fix: improve project polling logic and unify usage across
components

## 2.11.1

### Patch Changes

-   0f6ce52: fix: consolidate useProject hook and fix jwt expired error

## 2.11.0

### Minor Changes

-   cea3ef5: Feat: add org and project placeholders

## 2.10.0

### Minor Changes

-   86ecf27: feat: add support for additional metrics in overview
- 21708be: feat: dashboard: add support for storage buckets to AI
assistants

## 1.30.0

### Minor Changes

- 50441a8: feat: add ui for project autoscaler settings and run services
autoscaler settings

## 1.29.0

### Minor Changes

-   55d8bb5: feat: integrate turnstile for signup verification
-   2a2e54c: fix: update docs url in run services form tooltip
- 18f942f: fix: display long error messages in error toast without
overflow

### Patch Changes

-   @nhost/react-apollo@13.0.0
-   @nhost/nextjs@2.1.22

## 1.28.2

### Patch Changes

- 52a38fe: chore: update dependencies to address security
vulnerabilities
-   Updated dependencies [52a38fe]
    -   @nhost/nextjs@2.1.21

## 1.28.1

### Patch Changes

-   9735fa2: chore: remove broken link

## 1.28.0

### Minor Changes

- 526183a: feat: allow filtering users in "make request as" in graphql
section
-   be3b85b: feat: add conceal errors toggle on auth settings page

### Patch Changes

- 35a2f12: fix: prevent run service details from opening when attempting
to delete
    -   @nhost/react-apollo@12.0.6
    -   @nhost/nextjs@2.1.20

## 1.27.0

### Minor Changes

-   a7cd02c: fix: resolve rate limit query

## 1.26.0

### Minor Changes

-   3773ad7: chore: update pricing information
- b63250d: fix: not allow run service creation form resubmission while
creating a run service
-   a44a1d4: feat: add rate limits settings page

### Patch Changes

-   @nhost/react-apollo@12.0.5
-   @nhost/nextjs@2.1.19

## 1.25.0

### Minor Changes

- d1ceede: feat: add setting to migrate postgres major and/or minor
versions
- e5d3d1a: fix: allow manually typing column for custom check in
database row permissions

### Patch Changes

-   @nhost/react-apollo@12.0.4
-   @nhost/nextjs@2.1.18

## 1.24.1

### Patch Changes

- 49f2e55: fix: use service subdomain in service form and service
details dialog
- 598b988: fix: use current project subdomain in ServiceDetailsDialog
component

## 1.24.0

### Minor Changes

-   abb24af: chore: add redirect to support page when project is locked
- 18a6455: feat: show contact us info and locked reason when project is
locked

### Patch Changes

-   e31eefa: fix: include ingresses field when updating run services

## 1.23.0

### Minor Changes

-   33284d3: fix: don't show double scrollbar in configuration editor

### Patch Changes

-   @nhost/react-apollo@12.0.3
-   @nhost/nextjs@2.1.17

## 1.22.0

### Minor Changes

-   998c037: fix: align drop-down list in select component
- 807b8c0: fix: show city name in region selection for project creation

## 1.21.0

### Minor Changes

- a2efeed: fix: improve project health error handling, add unknown state
and polling interval for health state

## 1.20.0

### Minor Changes

- 8ea4210: fix: error toasts can be closed individually, instead of
dismissing all toasts at once
- 58919ba: chore: add blink animation when project health service is
updating

## 1.19.0

### Minor Changes

- b519862: fix: get configuration in configuration editor using local
development environment

## 1.18.0

### Minor Changes

- 502abad: feat: add services health checks indicators to the overview
page
-   b3ff6ad: chore: update title text on service status modal
- dbadf59: feat: add project configuration TOML editor to the settings
page

## 1.17.0

### Minor Changes

- 77fba27: fix: postgres version validation when activating ai in ai
settings page
-   ac6d1b6: feat: use name instead of awsName

## 1.16.3

### Patch Changes

- 87a37cf: fix: remove unnecessary isPlatform check from verify button
disable logic on custom domains
    -   @nhost/react-apollo@12.0.2
    -   @nhost/nextjs@2.1.16

## 1.16.2

### Patch Changes

- a9413af: fix: update `GetAllWorkspacesAndProjects` query polling to
use exponential backoff
    -   @nhost/react-apollo@12.0.1
    -   @nhost/nextjs@2.1.15

## 1.16.1

### Patch Changes

-   @nhost/react-apollo@12.0.0
-   @nhost/nextjs@2.1.14

## 1.16.0

### Minor Changes

- c6d5c5c: feat: add toggle switch to enable/disable public access in
the database settings

## 1.15.2

### Patch Changes

-   @nhost/react-apollo@11.0.4
-   @nhost/nextjs@2.1.13

## 1.15.1

### Patch Changes

-   @nhost/react-apollo@11.0.3
-   @nhost/nextjs@2.1.12

## 1.15.0

### Minor Changes

-   a7bde37: feat: send metadata in the edit form

### Patch Changes

- 1bc615b: feat: improve error message handling in `ErrorToast`
component
    -   @nhost/react-apollo@11.0.2
    -   @nhost/nextjs@2.1.11

## 1.14.0

### Minor Changes

-   a448d7d: feat: allow configuring postmark and delete SMTP settings

## 1.13.3

### Patch Changes

-   5924bc3: fix: include password in `GetSmtpSettings` query
- c5ad634: fix: resolved an issue where one-click install links were
broken on Safari
- 7278991: fix: update graphql auto-embeddings configuration to use
String type for model field

## 1.13.2

### Patch Changes

-   026f84f: fix: use configuration server URL from environment variable

## 1.13.1

### Patch Changes

-   7e9a2ce: fix: resolve issue where run services form fails to open

## 1.13.0

### Minor Changes

-   dd5d262: feat: add model field to the auto-embeddings form
- 09962be: feat: enable settings and run services when running the
dashboard locally
- 9cdecb6: feat: enable users to update their email address from the
account settings page

## 1.12.2

### Patch Changes

-   c195c51: fix: send email upon signin for unverified users

## 1.12.1

### Patch Changes

- 93ebdf8: fix: use service urls when initilizaing NhostClient running
local dashboard
    -   @nhost/react-apollo@11.0.1
    -   @nhost/nextjs@2.1.10

## 1.12.0

### Minor Changes

- f242e4b: feat: add connect with github to the user's account settings
-   768ca17: chore: update dependencies
- d62bd0f: fix: "Track this" option within the SQL editor now correctly
updates the metadata
- 91c2bb6: feat: refactor sign-in and sign-up pages to enforce email
verification

### Patch Changes

-   943831f: fix: resolve an error toast issue when unpausing a project
-   Updated dependencies [768ca17]
    -   @nhost/react-apollo@11.0.0
    -   @nhost/nextjs@2.1.9

## 1.11.2

### Patch Changes

-   @nhost/react-apollo@10.0.2
-   @nhost/nextjs@2.1.8

## 1.11.1

### Patch Changes

-   981404f: fix: set default value for healthCheck field validation

## 1.11.0

### Minor Changes

- 7789469: chore: upgrade dependency `@graphql-codegen/cli` to `5.0.2`
to address vulnerability
- 6c11b75: feat: add update user displayName section in account settings

### Patch Changes

-   @nhost/react-apollo@10.0.1
-   @nhost/nextjs@2.1.7

## 1.10.0

### Minor Changes

-   49a80c2: chore: update dependencies
-   150c04a: feat: add healthcheck config to run services

### Patch Changes

- e03f141: fix: allow insert, update and delete on tables in `auth` and
`storage` schemas
- 28676f4: feat: add min postgres version check to enable the ai service
-   Updated dependencies [49a80c2]
    -   @nhost/react-apollo@10.0.0
    -   @nhost/nextjs@2.1.6

## 1.9.0

### Minor Changes

-   d86e5c9: feat: add support for filtering the logs using a RegExp

## 1.8.3

### Patch Changes

-   @nhost/react-apollo@9.0.3
-   @nhost/nextjs@2.1.5

## 1.8.2

### Patch Changes

- 6df4f02: fix: use custom error toast and show correct message when
sending an invite

## 1.8.1

### Patch Changes

-   @nhost/react-apollo@9.0.2
-   @nhost/nextjs@2.1.4

## 1.8.0

### Minor Changes

- 713d53c: feat: add catch-all route for workspace/project - useful for
documentation

### Patch Changes

-   3db2999: fix: refresh table list after running SQL using the editor
- 3c4dd55: fix: handle `Error` objects properly in the `ErrorToast`
component
- 92b434e: fix: resolve an issue where the checkbox in the data-grid
header did not select all rows
    -   @nhost/react-apollo@9.0.1
    -   @nhost/nextjs@2.1.3

## 1.7.0

### Minor Changes

-   0d8d0eb: Update docs and dashboard references

## 1.6.9

### Patch Changes

-   @nhost/react-apollo@9.0.0
-   @nhost/nextjs@2.1.2

## 1.6.8

### Patch Changes

-   @nhost/react-apollo@8.0.1
-   @nhost/nextjs@2.1.1

## 1.6.7

### Patch Changes

-   5ef5189: fix: update `@apollo/client` to `3.9.4` to fix a cache bug

## 1.6.6

### Patch Changes

-   3ba485e: fix: added discord.com to connect-src
-   e5bab6a: chore: update dependencies
-   Updated dependencies [b19ffed]
-   Updated dependencies [e5bab6a]
    -   @nhost/nextjs@2.1.0
    -   @nhost/react-apollo@8.0.0

## 1.6.5

### Patch Changes

- ba73bb4: fix: update ErrorToast component to show the internal graphql
error
- d5337ff: fix: utilize accumulator in the creation of validation schema
within data grid utils

## 1.6.4

### Patch Changes

-   7c2a1c2: feat: show error and debug info in the error toast

## 1.6.3

### Patch Changes

-   6b8aad5: fix: add bare nhost.run to CSP

## 1.6.2

### Patch Changes

-   b18edc0: feat: added CSP and X-Frame-Options

## 1.6.1

### Patch Changes

-   8d91f71: chore: update deps and enable pnpm audit
- 3b8473b: chore: update turbo to `1.11.3` and pnpm to `8.10.5` in
Dockerfile
-   Updated dependencies [8d91f71]
    -   @nhost/react-apollo@7.0.2
    -   @nhost/nextjs@2.0.2

## 1.6.0

### Minor Changes

-   3ff1c2b53: fix: show upgrade option for pro projects

## 1.5.0

### Minor Changes

-   c2ef17c0a: feat: add support for new Team plan

## 1.4.0

### Minor Changes

-   7883bbcbd: feat: don't show deprecated plans
- 44be6dc0a: feat: set redirectTo during sign-in to support preview
environments

### Patch Changes

- 3c3594898: fix: allow access to graphite when configured running in
local dashboard
-   32c246b7a: chore: update docs icon

## 1.3.2

### Patch Changes

-   174b4165b: chore: use env variables when running graphql codegen
-   7c977e714: chore: change `Allowed Roles` to `Default Allowed Roles`
-   46f028b9f: fix: remove hardcoded ai version setting

## 1.3.1

### Patch Changes

- af33c21d1: chore: remove backendUrl deprecation notice and remove all
references to `providersUpdated`

## 1.3.0

### Minor Changes

-   04784d880: Fix graphite's default version

## 1.2.0

### Minor Changes

-   5733162ed: feat: add settings and ui for graphite

## 1.1.0

### Minor Changes

-   e2b79b5ec: chore: remove sharp from deps

## 1.0.1

### Patch Changes

-   @nhost/react-apollo@7.0.1
-   @nhost/nextjs@2.0.1

## 1.0.0

### Major Changes

- bc9eff6e4: chore: remove support for using backendUrl when
instantiating the Nhost client

### Patch Changes

-   Updated dependencies [bc9eff6e4]
    -   @nhost/nextjs@2.0.0
    -   @nhost/react-apollo@7.0.0

## 0.21.1

### Patch Changes

-   97ced73a3: fix(dashboard): prevent dashboard from resolving secrets

## 0.21.0

### Minor Changes

- ed1a8d458: Update alert message on increasing PostgreSQL's volume
capacity
-   2e2248fd4: feat(dashboard): add SQL editor

## 0.20.28

### Patch Changes

-   7c2c31082: feat: add support for users to delete their account
    -   @nhost/react-apollo@6.0.1
    -   @nhost/nextjs@1.13.40

## 0.20.27

### Patch Changes

- fa79b7709: chore(dashboard): tweaks and fixes to the service form and
dialog
-   8df84d782: fix(dashboard): allow resetting custom domains
    -   @nhost/react-apollo@6.0.0
    -   @nhost/nextjs@1.13.39

## 0.20.26

### Patch Changes

- 331ba0376: feat(dashboard): add postgres storage capacity modifier in
the settings
-   b7f801874: feat(dashboard): add new settings page for custom domains

## 0.20.25

### Patch Changes

-   @nhost/react-apollo@5.0.38

## 0.20.24

### Patch Changes

-   e10389ecf: fix(dashboard): disable run tab when developing locally
    -   @nhost/react-apollo@5.0.37

## 0.20.23

### Patch Changes

-   c01568a7d: chore(dashboard): show alert to update oauth providers

## 0.20.22

### Patch Changes

-   c3efb7ec8: feat(dashboard): query latest announcement from platform

## 0.20.21

### Patch Changes

-   3e46d3873: chore: update link to node18 announcement

## 0.20.20

### Patch Changes

-   @nhost/react-apollo@5.0.36
-   @nhost/nextjs@1.13.38

## 0.20.19

### Patch Changes

-   75c4c8ae3: feat(dashboard): make env value input multiline

## 0.20.18

### Patch Changes

- 425d485f8: fix(dashboard): make sure dedicated resources pricing
follows total resources

## 0.20.17

### Patch Changes

-   ae324f67f: fix(dashboard): remove unused graphql fields

## 0.20.16

### Patch Changes

-   df5b4302c: chore(dashboard): remove run feature flag
- bf4a1f6c2: feat(dashboard): fetch auth, postgres, hasura and storage
versions from dashboard
- 34fc08ca7: fix(dashboard/run): show correct private registry in
service details
-   885d10620: chore(dashboard): change feedback to contact us

## 0.20.15

### Patch Changes

- ed16c8b5d: feat(run): add a confirmation dialog when deleting a run
service
- 216990888: fix(run): center loading indicator when selecting a project

## 0.20.14

### Patch Changes

-   9fbea9787: feat: add node18 announcement

## 0.20.13

### Patch Changes

- e84acf469: fix(run): handle subdomain undefined error when creating a
new service

## 0.20.12

### Patch Changes

-   b7c799d62: feat(run): add dialog to copy registry and URLs

## 0.20.11

### Patch Changes

-   8903e6abd: fix(dashboard): show correct egress limit in usage stats

## 0.20.10

### Patch Changes

- 666a75a23: feat(dashboard): add functions execution time and egress
volume to usage stats

## 0.20.9

### Patch Changes

-   5e1e80aa8: fix(dashboard): show correct locales in user details
    -   @nhost/react-apollo@5.0.35
    -   @nhost/nextjs@1.13.37

## 0.20.8

### Patch Changes

-   @nhost/react-apollo@5.0.34
-   @nhost/nextjs@1.13.36

## 0.20.7

### Patch Changes

-   4a7ede11e: fix: distinguish files that were not uploaded
- 202b64723: feat(nhost-run): add support for one-click-install run
services
- 074a0fa11: feat(dashboard): add settings toggle to enable/disable
antivirus
    -   @nhost/react-apollo@5.0.33
    -   @nhost/nextjs@1.13.35

## 0.20.6

### Patch Changes

-   b20761e97: feat(services): add pricing info and confirmation dialog
-   90df6d81d: fix(services): handle null values when editing a service
-   aa8508467: fix: query service logs correctly
    feat: enable multiline support for environment value input

## 0.20.5

### Patch Changes

-   8d7f84b8d: fix: make announcement adapt to theme

## 0.20.4

### Patch Changes

-   3b75bfce2: fix: make announcement close properly
- f49819075: fix: show correct values when dedicated resources are
disabled

## 0.20.3

### Patch Changes

-   e643bd362: fix(services): fix errors when config is null
-   bcdab66bf: feat: add annoucement for nhost run
-   f967a2e59: added note about storage not being able to be downsized
-   311c7756d: chore(services): consistent naming for compute

## 0.20.2

### Patch Changes

-   9073182d5: chore(dashboard): bump `turbo` to 1.10.11
-   ece717d6e: feat(logs): show services in the logs page
- 82b335311: feat(metrics): change grafana link to point to the
dashboards
- b135ef695: fix(services): set command as optional and set min replicas
to 0

## 0.20.1

### Patch Changes

-   3d5c34f4c: fix(auth): fix users pagination limit

## 0.20.0

### Minor Changes

-   c99d117d1: feat(services): add support for custom services

## 0.19.2

### Patch Changes

-   face99ccd: chore(deps): bump turbo version
-   cfe527307: style: tweak pull config warning in dark mode
- a9d7da8af: chore(deps): update dependency @types/pluralize to ^0.0.30
-   9aa4371ef: chore: add hasura-auth version 0.21.2
- d14e112bf: chore(deps): update dependency prettier-plugin-tailwindcss
to ^0.4.0
-   d3e8bb94a: chore(deps): update dependency vite-plugin-dts to v3

## 0.19.1

### Patch Changes

-   @nhost/react-apollo@5.0.32
-   @nhost/nextjs@1.13.34

## 0.19.0

### Minor Changes

- 9c61c69a7: chore(dashboard):add postgres 14.6-20230705-1 to the
version selector

### Patch Changes

-   47bda15ff: feat(settings): add warning to pull config

## 0.18.0

### Minor Changes

- ee0b9b8ed: chore(dashboard):add hasura v2.28.2 and v2.29.0 to the
version selector

## 0.17.20

### Patch Changes

-   @nhost/react-apollo@5.0.31
-   @nhost/nextjs@1.13.33

## 0.17.19

### Patch Changes

-   f866120a6: fix(users): use the password length from the config

## 0.17.18

### Patch Changes

-   @nhost/react-apollo@5.0.30
-   @nhost/nextjs@1.13.32

## 0.17.17

### Patch Changes

-   ea7b102c0: fix(pat): highlight expired tokens

## 0.17.16

### Patch Changes

- b3b64a3b7: chore(deps): bump `@types/react` to `v18.2.14` and
`@types/react-dom` to `v18.2.6`
-   32b221f94: chore(deps): bump `graphiql` to `v3`
-   3a56c12df: chore(deps): bump `turbo` to `v1.10.6`
-   Updated dependencies [b3b64a3b7]
    -   @nhost/react-apollo@5.0.29
    -   @nhost/nextjs@1.13.31

## 0.17.15

### Patch Changes

-   f41fdc12a: chore(deps): bump `turbo` to `1.10.5`
-   6199c1c55: fix(projects): don't redirect to 404 page
-   Updated dependencies [07a45fde0]
    -   @nhost/react-apollo@5.0.28
    -   @nhost/nextjs@1.13.30

## 0.17.14

### Patch Changes

- 80b22724d: chore(deps): bump `@types/react` to `v18.2.13`,
`@types/react-dom` to `v18.2.6` and `@storybook/testing-library` to
`v0.2.0`

## 0.17.13

### Patch Changes

-   cc02902cb: chore(docs): update environment variable documentation

## 0.17.12

### Patch Changes

-   660d339e1: fix(storybook): don't break storybook
-   660d339e1: fix(tests): prevent warnings during tests
    -   @nhost/react-apollo@5.0.27
    -   @nhost/nextjs@1.13.29

## 0.17.11

### Patch Changes

- bd4d0c270: chore(dashboard):add postgres 14.6-20230613-1 to the
version selector

## 0.17.10

### Patch Changes

-   c8c2a10b2: fix(database): don't break the password reset flow
- e70b45498: chore(deps): bump `@types/react` to `v18.2.12` and
`@types/react-dom` to `v18.2.5`

## 0.17.9

### Patch Changes

- 842055099: chore(deps): bump `turbo` to `v1.10.3` and `pnpm` to
`v8.6.2`
- fd12aa0a8: chore(projects): remove the postgres password input from
the project creation screen
-   022b76e78: chore(deps): bump `@types/react` to `v18.2.11`
-   3555ab2b7: chore(deps): bump `vitest` monorepo to `v0.32.0`
-   c43e54922: feat(backups): add download button to backups

## 0.17.8

### Patch Changes

-   d0457fe5c: feat(settings): improve the dashboard and config parity
    -   @nhost/react-apollo@5.0.26
    -   @nhost/nextjs@1.13.28

## 0.17.7

### Patch Changes

-   4f0368b95: fix(account): don't break account settings page

## 0.17.6

### Patch Changes

- 64a8f41d0: chore(resources): lower the maximum allowed resources per
service

## 0.17.5

### Patch Changes

-   @nhost/react-apollo@5.0.25
-   @nhost/nextjs@1.13.27

## 0.17.4

### Patch Changes

- 9b1d0f7a5: fix(deployments): use correct timestamp for deployment
details
-   6d2963ffa: chore(deps): bump `@types/react` to `v18.2.8`
- 8871267b9: chore(deps): downgrade `pnpm` to `v8.5.1` because of no
Turborepo support

## 0.17.3

### Patch Changes

-   01eeef9de: chore(misc): under the hood improvements
- 21e13db05: chore(deps): bump `@types/react` to `v18.2.7` and `turbo`
to `v1.10.1`
- f16433ae6: chore(secrets): allow empty secrets and environment
variables
-   aa3c62989: chore(cli): bump Nhost CLI version to v1.0
    -   @nhost/react-apollo@5.0.24
    -   @nhost/nextjs@1.13.26

## 0.17.2

### Patch Changes

-   88a4983f: chore(misc): under the hood improvements

## 0.17.1

### Patch Changes

-   9b0d4dde: feat(secrets): enable secrets

## 0.17.0

### Minor Changes

-   15d84a19: Add postgres 14.6-20230525

## 0.16.14

### Patch Changes

-   4c626174: chore: updated import paths, improved directory structure
-   cc047b71: chore(deps): bump `@fontsource` monorepo to `v5.0.0`
-   99edd012: feat(account): add support for personal access tokens

## 0.16.13

### Patch Changes

-   78c7109c: feat(settings): allow selecting service versions

## 0.16.12

### Patch Changes

- 399009d6: fix(gql): don't enter an infinite loop when fetching remote
app data
- 329e5a91: fix(deployments): use the same sorting of deployments
everywhere
- 6d559d6e: chore(settings): add under the hood improvements to the
settings page
- 12eb236c: chore(deps): bump `prettier-plugin-tailwindcss` to `v0.3.0`
-   f9b81a2a: chore(deps): bump `turbo` to `v1.9.8`
-   1345741b: fix(projects): don't redirect to 404 on project creation
-   Updated dependencies [7fea29a8]
    -   @nhost/react-apollo@5.0.23
    -   @nhost/nextjs@1.13.25

## 0.16.11

### Patch Changes

- 1230b722: fix(projects): don't redirect to 404 on when the project is
renamed
    -   @nhost/react-apollo@5.0.22
    -   @nhost/nextjs@1.13.24

## 0.16.10

### Patch Changes

-   Updated dependencies [da03bf39]
    -   @nhost/react-apollo@5.0.21
    -   @nhost/nextjs@1.13.23

## 0.16.9

### Patch Changes

- 349aac36: fix(settings): use region domain when constructing the
postgres connection string

## 0.16.8

### Patch Changes

- 20fb69fa: chore(projects): change the way how API URLs are constructed

## 0.16.7

### Patch Changes

- 49f9b837: chore(docker): bump `pnpm` to `v8.4.0` and `turbo` to
`v1.9.3`
- 3f478a4e: chore(deps): bump `vitest` to `v0.31.0`, `@types/react` to
`v18.2.6` and `@types/react-dom` to `v18.2.4`

## 0.16.6

### Patch Changes

- d926f156: fix(projects): redirect to 404 when an invalid project is
opened
- 49b99728: fix(projects): disable features for non-owner members of
workspaces

## 0.16.5

### Patch Changes

-   12e2855f: chore(deps): bump `jsdom` to v22
-   e4972b83: feat(metrics): add Grafana page

## 0.16.4

### Patch Changes

- 3f396a9e: fix(projects): unpause after upgrading a paused project to
pro
- 3f396a9e: fix(projects): don't redirect to 404 page after project
creation

## 0.16.3

### Patch Changes

-   Updated dependencies [90c60311]
    -   @nhost/react-apollo@5.0.20
    -   @nhost/nextjs@1.13.22

## 0.16.2

### Patch Changes

-   0f34f0c6: fix(projects): disallow downgrading to free plan
- 8da291ad: chore(deps): bump `@types/react` to v18.2.0 and
`@types/react-dom` to v18.2.1

## 0.16.1

### Patch Changes

- adc828a5: fix(gql): don't enter an infinite loop when fetching remote
app data

## 0.16.0

### Minor Changes

-   2fb1145f: feat(compute): add support for replicas

### Patch Changes

- d8ceccec: chore(env): remove deprecated `NHOST_BACKEND_URL`
environment variable

## 0.15.2

### Patch Changes

-   84b84ab7: fix(projects): filter projects by workspace

## 0.15.1

### Patch Changes

-   2faf7907: chore(deps): bump `graphql-request` to v6
-   f1b5a944: chore(deps): bump `@vitejs/plugin-react` to v4
-   7f1785ac: chore(deps): bump `@types/react` to v18.0.37
    -   @nhost/react-apollo@5.0.19

## 0.15.0

### Minor Changes

-   85889ee8: feat(dashboard): add Compute management to the settings

## 0.14.8

### Patch Changes

-   668c8771: chore(dialogs): unify dialog management of payment dialogs

## 0.14.7

### Patch Changes

-   d4ccc656: chore: cleanup unused code
    -   @nhost/react-apollo@5.0.18
    -   @nhost/nextjs@1.13.21

## 0.14.6

### Patch Changes

-   b299cfc9: chore(deps): bump `vitest` to v0.30.0
-   411cb65b: chore(projects): refactor workspace and project hooks
- 43b1b144: chore(deps): bump `@types/react` to v18.0.34 and
`@types/react-dom` to v18.0.11
-   Updated dependencies [43b1b144]
    -   @nhost/react-apollo@5.0.17
    -   @nhost/nextjs@1.13.20

## 0.14.5

### Patch Changes

-   ba0d57ee: fix(i18n): revert i18n library
-   3328ed05: feat(projects): improve overview when there is an error

## 0.14.4

### Patch Changes

-   5e0920ba: chore(deps): bump `next-seo` to v6
-   706c9dc3: chore(deps): bump `@types/react` to 18.0.33
-   99f8f6b3: feat(metrics): show metrics on the overview

## 0.14.3

### Patch Changes

-   @nhost/react-apollo@5.0.16

## 0.14.2

### Patch Changes

-   3cb67300: fix(logs): don't break UI when clearing time picker
-   7453bf3b: feat(projects): show project creator info
-   c166dad0: chore(tests): improve auth page tests
-   6a290bb2: chore(deps): bump `@types/react` to 18.0.32

## 0.14.1

### Patch Changes

-   @nhost/react-apollo@5.0.15
-   @nhost/nextjs@1.13.19

## 0.14.0

### Minor Changes

-   6e1f03ea: feat(dashboard): add support for the Azure AD provider

### Patch Changes

-   1bd2c373: chore(deps): bump `turbo` to 1.8.6
-   d329b621: chore(deps): bump `@types/react` to 18.0.30
-   cb248f0d: fix(tests): avoid name collision in database tests
-   867c8076: chore(deps): bump `@types/react` to 18.0.29

## 0.13.10

### Patch Changes

- e93b06ab: fix(dashboard): remove left margin from workspace list on
mobile
-   1c4806bf: chore(deps): bump `sharp` to 0.32.0
    -   @nhost/react-apollo@5.0.14
    -   @nhost/nextjs@1.13.18

## 0.13.9

### Patch Changes

-   912ed76c: chore(dashboard): bump `@apollo/client` to 3.7.10
-   Updated dependencies [912ed76c]
    -   @nhost/react-apollo@5.0.13

## 0.13.8

### Patch Changes

-   7c127372: chore(dashboard): bump `react-error-boundary` to v4

## 0.13.7

### Patch Changes

- 9130ab12: chore(dashboard): bump `yup` to v1 and `@hookform/resolvers`
to v3

## 0.13.6

### Patch Changes

- 253dd235: using new mutation to create projects + refactor Create
Project page.

## 0.13.5

### Patch Changes

-   @nhost/react-apollo@5.0.12
-   @nhost/nextjs@1.13.17

## 0.13.4

### Patch Changes

-   b48bc034: fix(dashboard): disable new users
-   798e591b: fix(dashboard): show correct date in data grid

## 0.13.3

### Patch Changes

-   bfb4c1a6: chore(dashboard): remove `useAxios` property
-   d8d8394b: Dashboard: allow to override hasura admin secret in docker
-   Updated dependencies [ce1ee40d]
    -   @nhost/nextjs@1.13.16
    -   @nhost/react-apollo@5.0.11

## 0.13.2

### Patch Changes

-   beed2eba: Fix docker entrypoint for dashboard
- 2c8559a3: fix(dashboard): refresh project list after deleting a
project
-   4329d048: chore(dashboard): bump `graphiql` dependencies

## 0.13.1

### Patch Changes

-   cbb1fc5b: chore(dashboard): cleanup GraphQL operations

## 0.13.0

### Minor Changes

-   088584e7: feat(dashboard): add support for custom local subdomains

### Patch Changes

-   2ac90dfd: fix(dashboard): improve mobile responsive layout
-   Updated dependencies [f375eacc]
    -   @nhost/nextjs@1.13.15
    -   @nhost/react-apollo@5.0.10

## 0.12.4

### Patch Changes

-   @nhost/react-apollo@5.0.9
-   @nhost/nextjs@1.13.14

## 0.12.3

### Patch Changes

-   2b1338f7: chore(dashboard): bump `turbo` to 1.8.3
- 5223ee93: fix(dashboard): show correct deployment status on the main
page
-   850a049c: chore(deps): update docker/build-push-action action to v4
-   Updated dependencies [850a049c]
    -   @nhost/nextjs@1.13.13
    -   @nhost/react-apollo@5.0.8

## 0.12.2

### Patch Changes

-   4bf40995: chore(deps): bump `typescript` to `4.9.5`
-   8bb097c9: chore(deps): bump `vitest`
- 35d52aab: chore(deps): replace `cross-fetch` with `isomorphic-unfetch`
-   Updated dependencies [4bf40995]
-   Updated dependencies [8bb097c9]
-   Updated dependencies [35d52aab]
    -   @nhost/react-apollo@5.0.7
    -   @nhost/nextjs@1.13.12

## 0.12.1

### Patch Changes

-   c96d7ccd: fix(dashboard): fix docker builds

## 0.12.0

### Minor Changes

-   d1671210: feat(dashboard): use mimir to manage project configuration

### Patch Changes

-   f65e4de9: chore(deps): bump @graphql-codegen monorepo to v3

## 0.11.20

### Patch Changes

-   4b4f0d01: chore(dashboard): improve dialog management

## 0.11.19

### Patch Changes

-   @nhost/react-apollo@5.0.6
-   @nhost/nextjs@1.13.11

## 0.11.18

### Patch Changes

-   01318860: fix(nhost-js): use correct URL for functions requests
-   Updated dependencies [01318860]
    -   @nhost/react-apollo@5.0.5
    -   @nhost/nextjs@1.13.10

## 0.11.17

### Patch Changes

-   f673adea: fix(dashboard): set correct Content-Type for user creation
-   445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
-   445d8ef4: chore(deps): bump `@nhost/nextjs` to 1.13.9
- 0368663d: fix(dashboard): allow permission editing for auth and
storage schemas
-   Updated dependencies [445d8ef4]
-   Updated dependencies [445d8ef4]
    -   @nhost/react-apollo@5.0.4
    -   @nhost/nextjs@1.13.9

## 0.11.16

### Patch Changes

-   b755e908: fix(dashboard): use correct date for last seen
-   2d9145f9: chore(deps): revert GraphQL client
- 1ddf704c: fix(dashboard): don't show false positive message for failed
user creation
    -   @nhost/react-apollo@5.0.3
    -   @nhost/nextjs@1.13.8

## 0.11.15

### Patch Changes

-   @nhost/react-apollo@5.0.2
-   @nhost/nextjs@1.13.7

## 0.11.14

### Patch Changes

- 2cc18dcb: fix(dashboard): prevent permission editor dropdown from
being always open

## 0.11.13

### Patch Changes

- 3343a363: chore(dashboard): bump `@testing-library/react` to v14 and
`@testing-library/dom` to v9
    -   @nhost/react-apollo@5.0.1
    -   @nhost/nextjs@1.13.6

## 0.11.12

### Patch Changes

- 87eda76e: chore(dashboard): bump `@types/react` to v18.0.28 and
`@types/react-dom` to v18.0.11
-   6f0ac570: feat(dashboard): show dashboard version in account menu

## 0.11.11

### Patch Changes

-   bf1e4071: chore(dashboard): bump `react-is` version to `18.2.0`
-   Updated dependencies [bf1e4071]
-   Updated dependencies [5013213b]
    -   @nhost/nextjs@1.13.5
    -   @nhost/react-apollo@4.13.5

## 0.11.10

### Patch Changes

- a37a430b: fix(dashboard): don't break UI when deployments are
unavailable
    -   @nhost/react-apollo@4.13.4
    -   @nhost/nextjs@1.13.4

## 0.11.9

### Patch Changes

-   7b970e68: fix(dashboard): fix header link color

## 0.11.8

### Patch Changes

- f33242f2: feat(dashboard): add new sign up, sign in and reset password
pages

## 0.11.7

### Patch Changes

-   e9c8909c: fix(dashboard): use correct theme color in dark mode

## 0.11.6

### Patch Changes

-   902f486b: fix(dashboard): re-enable Hasura on logs page

## 0.11.5

### Patch Changes

-   1f9720fa: fix(dashboard): apply select permissions properly

## 0.11.4

### Patch Changes

-   deb14b51: fix(dashboard): don't break billing form

## 0.11.3

### Patch Changes

-   @nhost/react-apollo@4.13.3
-   @nhost/nextjs@1.13.3

## 0.11.2

### Patch Changes

-   f143e51d: chore(dashboard): pin Turborepo to 1.6.3

## 0.11.1

### Patch Changes

-   c2b5a41a: chore(dashboard): select system colors by default

## 0.11.0

### Minor Changes

-   1ebaf429: feat(dashboard): introduce Dark Mode 🌚

### Patch Changes

- 63b445c4: fixed duplicated logs bug and made to date count during live
mode

## 0.10.1

### Patch Changes

-   e146d32e: chore(deps): update dependency @types/react to v18.0.27
-   59347fcd: correct allowed role name
-   5b65cac9: updated authentication documentation
-   963f9b5e: feat(dashboard): include project info in feedback

## 0.10.0

### Minor Changes

-   ed4c7801: chore(dashboard): remove Functions section

## 0.9.10

### Patch Changes

-   4e2f8ccd: fix(dashboard): don't break Auth page in local mode

## 0.9.9

### Patch Changes

-   31abbe5f: fix(dashboard): enable toggle when settings are filled in

## 0.9.8

### Patch Changes

- 5bdd31ad: chore(dashboard): list fewer images per page on the Storage
page
- 5121851c: fix(dashboard): don't throw validation error for valid
permission rules

## 0.9.7

### Patch Changes

-   c126b20d: fix(dashboard): correct redeployment button

## 0.9.6

### Patch Changes

-   36c3519c: feat(dashboard): retrigger deployments

## 0.9.5

### Patch Changes

- 200e9f77: chore(deps): update dependency @types/react-dom to v18.0.10
-   Updated dependencies [200e9f77]
    -   @nhost/nextjs@1.13.2
    -   @nhost/react-apollo@4.13.2

## 0.9.4

### Patch Changes

- dbd3ded5: fix(dashboard): workspaces creation, new form, correct
redirects.

## 0.9.3

### Patch Changes

-   85f0f943: fix(dashboard): don't break the table creation process

## 0.9.2

### Patch Changes

-   Updated dependencies [d42c27ae]
-   Updated dependencies [927be4a2]
    -   @nhost/nextjs@1.13.1
    -   @nhost/react-apollo@4.13.1

## 0.9.1

### Patch Changes

-   d0f80811: fix(dashboard): don't show error when signing out the user

## 0.9.0

### Minor Changes

- d92891b2: feat(dashboard): add Permission Editor to the Database
section

### Patch Changes

-   3d379128: fix(dashboard): create new user
    -   @nhost/react-apollo@4.13.0
    -   @nhost/nextjs@1.13.0

## 0.8.1

### Patch Changes

-   7cadd944: fix(dashboard): display Twitter provider settings

## 0.8.0

### Minor Changes

-   9a1aa7bb: add functions to the log dashboard
-   f29abe62: feat(dashboard): Users Management v2

### Patch Changes

-   7766624b: feat(dashboard): add JWT secret editor modal
    -   @nhost/react-apollo@4.12.1
    -   @nhost/nextjs@1.12.1

## 0.7.13

### Patch Changes

-   dd0738d5: fix(dashboard): provisioning status polling

## 0.7.12

### Patch Changes

-   b21222b3: chore(deps): update dependency @types/node to v16
-   9e0486a3: fix(dashboard): close modals when navigating
-   Updated dependencies [b21222b3]
-   Updated dependencies [65687bee]
-   Updated dependencies [54df0df4]
    -   @nhost/nextjs@1.12.0
    -   @nhost/react-apollo@4.12.0

## 0.7.11

### Patch Changes

-   d6527122: fix(dashboard): use correct service URLs

## 0.7.10

### Patch Changes

-   Updated dependencies [57db5b83]
    -   @nhost/nextjs@1.11.0
    -   @nhost/nhost-js@1.7.0
    -   @nhost/react@0.17.0
    -   @nhost/react-apollo@4.11.0

## 0.7.9

### Patch Changes

- a6d31dc2: fix(dashboard): don't break the UI when project is not
loaded yet

## 0.7.8

### Patch Changes

- 7f251111: Use `NhostProvider` instead of `NhostReactProvider` and
`NhostNextProvider`

    `NhostReactProvider` and `NhostNextProvider` are now deprecated

-   f4d70f88: fix(dashboard): do not break when region is nullish

- 4a9471cc: Windows Live Provider displayed link updated to match
backend url

- 594488e4: fix(dashboard): do not show error when submitting Apple
provider settings

-   Updated dependencies [7f251111]
    -   @nhost/nextjs@1.10.0
    -   @nhost/react@0.16.0
    -   @nhost/react-apollo@4.10.0

## 0.7.7

### Patch Changes

-   80b604ad: fix(dashboard): use correct Hasura slug

## 0.7.6

### Patch Changes

-   2d2beb53: fix(dashboard): prevent error on GraphQL page
-   ac8efcbd: chore(dashboard): deprecate old DNS name

## 0.7.5

### Patch Changes

-   132a4f4b: chore(dashboard): remove unused dependencies
- 132a4f4b: chore(deps): synchronize @types/react-dom and @types/react
versions
-   db57572f: fix(dashboard): correct section paddings when no env vars
-   Updated dependencies [132a4f4b]
    -   @nhost/react@0.15.2
    -   @nhost/react-apollo@4.9.2
    -   @nhost/nextjs@1.9.3

## 0.7.4

### Patch Changes

-   34d85e54: chore(deps): update dependency critters to ^0.0.16
- 9b93cf95: chore(deps): update dependency @netlify/functions to ^0.11.0
-   e0439030: chore(deps): update dependency @types/react-dom to v18.0.9
-   Updated dependencies [82124329]
    -   @nhost/nextjs@1.9.2

## 0.7.3

### Patch Changes

-   a1193da4: fix(dashboard): remove character limit from env var inputs

## 0.7.2

### Patch Changes

-   44f13f62: chore(dashboard): cleanup unused files

## 0.7.1

### Patch Changes

- e01cb2ed: chore(dashboard): change settings sidebar menu item density

## 0.7.0

### Minor Changes

- db342f45: chore(dashboard): refactor Roles and Permissions settings
sections
-   8b9fa0b1: feat(dashboard): add Environment Variables page

### Patch Changes

-   Updated dependencies [66b4f3d0]
-   Updated dependencies [2e6923dc]
-   Updated dependencies [ef117c28]
-   Updated dependencies [aebb8225]
    -   @nhost/core@0.9.4
    -   @nhost/nhost-js@1.6.2
    -   @nhost/nextjs@1.9.1
    -   @nhost/react@0.15.1
    -   @nhost/react-apollo@4.9.1

## 0.6.0

### Minor Changes

-   eef9c914: feat(dashboard): add Roles and Permissions page

## 0.5.0

### Minor Changes

-   a48dd5bf: feat(dashboard): make backend port configurable

## 0.4.3

### Patch Changes

-   5de965d9: fix(dashboard): alphabetic ordering of providers
-   b9087a4a: fix(dashboard): console -> dashboard terminology
-   ca012d79: docs(workos): WorkOS Docs

## 0.4.2

### Patch Changes

-   89bd37bc: fix(dashboard): correct redirect URL input opacity
-   Updated dependencies [4601d84e]
-   Updated dependencies [843087cb]
    -   @nhost/react@0.15.0
    -   @nhost/nextjs@1.9.0
    -   @nhost/react-apollo@4.9.0

## 0.4.1

### Patch Changes

-   766cb612: fix(dashboard): correct redirect URL for oauth providers
-   Updated dependencies [53bdc294]
-   Updated dependencies [f2aaff05]
    -   @nhost/nextjs@1.8.3
    -   @nhost/core@0.9.3
    -   @nhost/react@0.14.3
    -   @nhost/nhost-js@1.6.1
    -   @nhost/react-apollo@4.8.3

## 0.4.0

### Minor Changes

-   9211743d: feat(dashboard): migrate Settings page features

## 0.3.0

### Minor Changes

-   73da6a67: fix(dashboard): avoid using BACKEND_URL locally

## 0.2.0

### Minor Changes

-   db118f97: feat(dashboard): generate Docker image

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-13 19:25:42 -01:00
Nuno Pato
38696f5e88 fix: dashboard: add zendesk to csp header (#3233)
### **PR Type**
Enhancement


___

### **Description**
- Add Zendesk to Content Security Policy header

- Update connect-src directive in CSP

- Create changeset for dashboard package


___



### **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>next.config.js</strong><dd><code>Update CSP header to
include Zendesk domain</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

dashboard/next.config.js

- Added 'nhost.zendesk.com' to connect-src directive in CSP header


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>cool-meals-suffer.md</strong><dd><code>Add changeset
for Zendesk CSP header update</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

.changeset/cool-meals-suffer.md

<li>Created new changeset file for dashboard package<br> <li> Added
minor version bump for '@nhost/dashboard'<br> <li> Described the change
as adding Zendesk to CSP header


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3233/files#diff-fd059b376d0e11b20781a74a903fc6b125f5b86afa8543b9e5c4ceb348f3aef3">+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-03-13 18:43:51 -01:00
RayRemnant
064ea6a337 chore (nextjs): Update create-server-side-client.ts comment - typo (#3228)
fixed typo 'refesh'

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-03-13 11:42:49 +01:00
Dimitri POSTOLOV
0d323e10f5 chore (react/react-apollo): replace depreacted NhostReactProvider with NhostProvider in README.md (#3227)
<img width="346" alt="image"
src="https://github.com/user-attachments/assets/2f59075c-78e7-420e-8d0b-aa427662f2fd"
/>

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2025-03-13 11:16:46 +01:00
github-actions[bot]
6921526cf5 chore: update versions (#3221)
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/apollo@8.0.6

### Patch Changes

-   @nhost/nhost-js@3.2.6

## @nhost/react-apollo@17.0.2

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/apollo@8.0.6

## @nhost/react-urql@14.0.2

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2

## @nhost/hasura-auth-js@2.10.2

### Patch Changes

-   ad57a9e: fix(auth): allow to pass custom headers to signup

## @nhost/nextjs@2.2.5

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2

## @nhost/nhost-js@3.2.6

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/hasura-auth-js@2.10.2

## @nhost/react@3.10.2

### Patch Changes

-   ad57a9e: fix(auth): allow to pass custom headers to signup
    -   @nhost/nhost-js@3.2.6

## @nhost/vue@2.9.3

### Patch Changes

-   @nhost/nhost-js@3.2.6

## @nhost/dashboard@2.22.0

# @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

- f1052a8: fix: improve stability of the dashboard when pausing projects
-   30daa41: fix: update links to docs in overview page
-   7537237: feat: add image preview toggle in storage

## 2.14.0

### Minor Changes

- d43931e: fix: invalid organization slug/project subdomain doesn't open
404 page
- 5df6fa2: feat: add unencrypted disk warning in storage capacity
settings

### Patch Changes

-   44c1e17: chore: update `msw` to v1.3.5 to fix vulnerabilities
    -   @nhost/react-apollo@16.0.0
    -   @nhost/nextjs@2.2.1

## 2.13.0

### Minor Changes

- 21e90da: chore: remove restrictions on SMTP sender so My Name
[name@acme.com](mailto:name@acme.com) can be added
- 865dd93: fix: duplicate Run placeholders when there is an error in the
backend
- 6902a36: fix: can remove resources if postgres capacity is higher than
10
-   a535aa3: fix: fetch user roles locally in auth section
-   0c50816: fix: allow decimal numbers in database row insert
- aea6d18: chore: add warning when pausing a project about losing Run
services persistent volume data
- d3b4fc3: feat: allow to change postgres settings if project is paused
-   29d27e1: chore: update `next` to v14.2.22 to fix vulnerabilities
-   c9dca09: feat: add reset password form
-   b3bcacb: fix: paused project banner cannot read null project name

### Patch Changes

-   Updated dependencies [46fc520]
-   Updated dependencies [29d27e1]
    -   @nhost/nextjs@2.2.0
    -   @nhost/react-apollo@15.0.1

## 2.12.0

### Minor Changes

- eb95562: fix: show all available permission variables in permission
dropdown select

### Patch Changes

- 8b5c4a0: chore: cleanup layout and add disable duplicate atom key
checking in development mode

## 2.11.3

### Patch Changes

- 714dffa: fix: improve project polling logic and unify usage across
components

## 2.11.2

### Patch Changes

- 6a34f89: fix: improve project polling logic and unify usage across
components

## 2.11.1

### Patch Changes

-   0f6ce52: fix: consolidate useProject hook and fix jwt expired error

## 2.11.0

### Minor Changes

-   cea3ef5: Feat: add org and project placeholders

## 2.10.0

### Minor Changes

-   86ecf27: feat: add support for additional metrics in overview
- 21708be: feat: dashboard: add support for storage buckets to AI
assistants

## 1.30.0

### Minor Changes

- 50441a8: feat: add ui for project autoscaler settings and run services
autoscaler settings

## 1.29.0

### Minor Changes

-   55d8bb5: feat: integrate turnstile for signup verification
-   2a2e54c: fix: update docs url in run services form tooltip
- 18f942f: fix: display long error messages in error toast without
overflow

### Patch Changes

-   @nhost/react-apollo@13.0.0
-   @nhost/nextjs@2.1.22

## 1.28.2

### Patch Changes

- 52a38fe: chore: update dependencies to address security
vulnerabilities
-   Updated dependencies [52a38fe]
    -   @nhost/nextjs@2.1.21

## 1.28.1

### Patch Changes

-   9735fa2: chore: remove broken link

## 1.28.0

### Minor Changes

- 526183a: feat: allow filtering users in "make request as" in graphql
section
-   be3b85b: feat: add conceal errors toggle on auth settings page

### Patch Changes

- 35a2f12: fix: prevent run service details from opening when attempting
to delete
    -   @nhost/react-apollo@12.0.6
    -   @nhost/nextjs@2.1.20

## 1.27.0

### Minor Changes

-   a7cd02c: fix: resolve rate limit query

## 1.26.0

### Minor Changes

-   3773ad7: chore: update pricing information
- b63250d: fix: not allow run service creation form resubmission while
creating a run service
-   a44a1d4: feat: add rate limits settings page

### Patch Changes

-   @nhost/react-apollo@12.0.5
-   @nhost/nextjs@2.1.19

## 1.25.0

### Minor Changes

- d1ceede: feat: add setting to migrate postgres major and/or minor
versions
- e5d3d1a: fix: allow manually typing column for custom check in
database row permissions

### Patch Changes

-   @nhost/react-apollo@12.0.4
-   @nhost/nextjs@2.1.18

## 1.24.1

### Patch Changes

- 49f2e55: fix: use service subdomain in service form and service
details dialog
- 598b988: fix: use current project subdomain in ServiceDetailsDialog
component

## 1.24.0

### Minor Changes

-   abb24af: chore: add redirect to support page when project is locked
- 18a6455: feat: show contact us info and locked reason when project is
locked

### Patch Changes

-   e31eefa: fix: include ingresses field when updating run services

## 1.23.0

### Minor Changes

-   33284d3: fix: don't show double scrollbar in configuration editor

### Patch Changes

-   @nhost/react-apollo@12.0.3
-   @nhost/nextjs@2.1.17

## 1.22.0

### Minor Changes

-   998c037: fix: align drop-down list in select component
- 807b8c0: fix: show city name in region selection for project creation

## 1.21.0

### Minor Changes

- a2efeed: fix: improve project health error handling, add unknown state
and polling interval for health state

## 1.20.0

### Minor Changes

- 8ea4210: fix: error toasts can be closed individually, instead of
dismissing all toasts at once
- 58919ba: chore: add blink animation when project health service is
updating

## 1.19.0

### Minor Changes

- b519862: fix: get configuration in configuration editor using local
development environment

## 1.18.0

### Minor Changes

- 502abad: feat: add services health checks indicators to the overview
page
-   b3ff6ad: chore: update title text on service status modal
- dbadf59: feat: add project configuration TOML editor to the settings
page

## 1.17.0

### Minor Changes

- 77fba27: fix: postgres version validation when activating ai in ai
settings page
-   ac6d1b6: feat: use name instead of awsName

## 1.16.3

### Patch Changes

- 87a37cf: fix: remove unnecessary isPlatform check from verify button
disable logic on custom domains
    -   @nhost/react-apollo@12.0.2
    -   @nhost/nextjs@2.1.16

## 1.16.2

### Patch Changes

- a9413af: fix: update `GetAllWorkspacesAndProjects` query polling to
use exponential backoff
    -   @nhost/react-apollo@12.0.1
    -   @nhost/nextjs@2.1.15

## 1.16.1

### Patch Changes

-   @nhost/react-apollo@12.0.0
-   @nhost/nextjs@2.1.14

## 1.16.0

### Minor Changes

- c6d5c5c: feat: add toggle switch to enable/disable public access in
the database settings

## 1.15.2

### Patch Changes

-   @nhost/react-apollo@11.0.4
-   @nhost/nextjs@2.1.13

## 1.15.1

### Patch Changes

-   @nhost/react-apollo@11.0.3
-   @nhost/nextjs@2.1.12

## 1.15.0

### Minor Changes

-   a7bde37: feat: send metadata in the edit form

### Patch Changes

- 1bc615b: feat: improve error message handling in `ErrorToast`
component
    -   @nhost/react-apollo@11.0.2
    -   @nhost/nextjs@2.1.11

## 1.14.0

### Minor Changes

-   a448d7d: feat: allow configuring postmark and delete SMTP settings

## 1.13.3

### Patch Changes

-   5924bc3: fix: include password in `GetSmtpSettings` query
- c5ad634: fix: resolved an issue where one-click install links were
broken on Safari
- 7278991: fix: update graphql auto-embeddings configuration to use
String type for model field

## 1.13.2

### Patch Changes

-   026f84f: fix: use configuration server URL from environment variable

## 1.13.1

### Patch Changes

-   7e9a2ce: fix: resolve issue where run services form fails to open

## 1.13.0

### Minor Changes

-   dd5d262: feat: add model field to the auto-embeddings form
- 09962be: feat: enable settings and run services when running the
dashboard locally
- 9cdecb6: feat: enable users to update their email address from the
account settings page

## 1.12.2

### Patch Changes

-   c195c51: fix: send email upon signin for unverified users

## 1.12.1

### Patch Changes

- 93ebdf8: fix: use service urls when initilizaing NhostClient running
local dashboard
    -   @nhost/react-apollo@11.0.1
    -   @nhost/nextjs@2.1.10

## 1.12.0

### Minor Changes

- f242e4b: feat: add connect with github to the user's account settings
-   768ca17: chore: update dependencies
- d62bd0f: fix: "Track this" option within the SQL editor now correctly
updates the metadata
- 91c2bb6: feat: refactor sign-in and sign-up pages to enforce email
verification

### Patch Changes

-   943831f: fix: resolve an error toast issue when unpausing a project
-   Updated dependencies [768ca17]
    -   @nhost/react-apollo@11.0.0
    -   @nhost/nextjs@2.1.9

## 1.11.2

### Patch Changes

-   @nhost/react-apollo@10.0.2
-   @nhost/nextjs@2.1.8

## 1.11.1

### Patch Changes

-   981404f: fix: set default value for healthCheck field validation

## 1.11.0

### Minor Changes

- 7789469: chore: upgrade dependency `@graphql-codegen/cli` to `5.0.2`
to address vulnerability
- 6c11b75: feat: add update user displayName section in account settings

### Patch Changes

-   @nhost/react-apollo@10.0.1
-   @nhost/nextjs@2.1.7

## 1.10.0

### Minor Changes

-   49a80c2: chore: update dependencies
-   150c04a: feat: add healthcheck config to run services

### Patch Changes

- e03f141: fix: allow insert, update and delete on tables in `auth` and
`storage` schemas
- 28676f4: feat: add min postgres version check to enable the ai service
-   Updated dependencies [49a80c2]
    -   @nhost/react-apollo@10.0.0
    -   @nhost/nextjs@2.1.6

## 1.9.0

### Minor Changes

-   d86e5c9: feat: add support for filtering the logs using a RegExp

## 1.8.3

### Patch Changes

-   @nhost/react-apollo@9.0.3
-   @nhost/nextjs@2.1.5

## 1.8.2

### Patch Changes

- 6df4f02: fix: use custom error toast and show correct message when
sending an invite

## 1.8.1

### Patch Changes

-   @nhost/react-apollo@9.0.2
-   @nhost/nextjs@2.1.4

## 1.8.0

### Minor Changes

- 713d53c: feat: add catch-all route for workspace/project - useful for
documentation

### Patch Changes

-   3db2999: fix: refresh table list after running SQL using the editor
- 3c4dd55: fix: handle `Error` objects properly in the `ErrorToast`
component
- 92b434e: fix: resolve an issue where the checkbox in the data-grid
header did not select all rows
    -   @nhost/react-apollo@9.0.1
    -   @nhost/nextjs@2.1.3

## 1.7.0

### Minor Changes

-   0d8d0eb: Update docs and dashboard references

## 1.6.9

### Patch Changes

-   @nhost/react-apollo@9.0.0
-   @nhost/nextjs@2.1.2

## 1.6.8

### Patch Changes

-   @nhost/react-apollo@8.0.1
-   @nhost/nextjs@2.1.1

## 1.6.7

### Patch Changes

-   5ef5189: fix: update `@apollo/client` to `3.9.4` to fix a cache bug

## 1.6.6

### Patch Changes

-   3ba485e: fix: added discord.com to connect-src
-   e5bab6a: chore: update dependencies
-   Updated dependencies [b19ffed]
-   Updated dependencies [e5bab6a]
    -   @nhost/nextjs@2.1.0
    -   @nhost/react-apollo@8.0.0

## 1.6.5

### Patch Changes

- ba73bb4: fix: update ErrorToast component to show the internal graphql
error
- d5337ff: fix: utilize accumulator in the creation of validation schema
within data grid utils

## 1.6.4

### Patch Changes

-   7c2a1c2: feat: show error and debug info in the error toast

## 1.6.3

### Patch Changes

-   6b8aad5: fix: add bare nhost.run to CSP

## 1.6.2

### Patch Changes

-   b18edc0: feat: added CSP and X-Frame-Options

## 1.6.1

### Patch Changes

-   8d91f71: chore: update deps and enable pnpm audit
- 3b8473b: chore: update turbo to `1.11.3` and pnpm to `8.10.5` in
Dockerfile
-   Updated dependencies [8d91f71]
    -   @nhost/react-apollo@7.0.2
    -   @nhost/nextjs@2.0.2

## 1.6.0

### Minor Changes

-   3ff1c2b53: fix: show upgrade option for pro projects

## 1.5.0

### Minor Changes

-   c2ef17c0a: feat: add support for new Team plan

## 1.4.0

### Minor Changes

-   7883bbcbd: feat: don't show deprecated plans
- 44be6dc0a: feat: set redirectTo during sign-in to support preview
environments

### Patch Changes

- 3c3594898: fix: allow access to graphite when configured running in
local dashboard
-   32c246b7a: chore: update docs icon

## 1.3.2

### Patch Changes

-   174b4165b: chore: use env variables when running graphql codegen
-   7c977e714: chore: change `Allowed Roles` to `Default Allowed Roles`
-   46f028b9f: fix: remove hardcoded ai version setting

## 1.3.1

### Patch Changes

- af33c21d1: chore: remove backendUrl deprecation notice and remove all
references to `providersUpdated`

## 1.3.0

### Minor Changes

-   04784d880: Fix graphite's default version

## 1.2.0

### Minor Changes

-   5733162ed: feat: add settings and ui for graphite

## 1.1.0

### Minor Changes

-   e2b79b5ec: chore: remove sharp from deps

## 1.0.1

### Patch Changes

-   @nhost/react-apollo@7.0.1
-   @nhost/nextjs@2.0.1

## 1.0.0

### Major Changes

- bc9eff6e4: chore: remove support for using backendUrl when
instantiating the Nhost client

### Patch Changes

-   Updated dependencies [bc9eff6e4]
    -   @nhost/nextjs@2.0.0
    -   @nhost/react-apollo@7.0.0

## 0.21.1

### Patch Changes

-   97ced73a3: fix(dashboard): prevent dashboard from resolving secrets

## 0.21.0

### Minor Changes

- ed1a8d458: Update alert message on increasing PostgreSQL's volume
capacity
-   2e2248fd4: feat(dashboard): add SQL editor

## 0.20.28

### Patch Changes

-   7c2c31082: feat: add support for users to delete their account
    -   @nhost/react-apollo@6.0.1
    -   @nhost/nextjs@1.13.40

## 0.20.27

### Patch Changes

- fa79b7709: chore(dashboard): tweaks and fixes to the service form and
dialog
-   8df84d782: fix(dashboard): allow resetting custom domains
    -   @nhost/react-apollo@6.0.0
    -   @nhost/nextjs@1.13.39

## 0.20.26

### Patch Changes

- 331ba0376: feat(dashboard): add postgres storage capacity modifier in
the settings
-   b7f801874: feat(dashboard): add new settings page for custom domains

## 0.20.25

### Patch Changes

-   @nhost/react-apollo@5.0.38

## 0.20.24

### Patch Changes

-   e10389ecf: fix(dashboard): disable run tab when developing locally
    -   @nhost/react-apollo@5.0.37

## 0.20.23

### Patch Changes

-   c01568a7d: chore(dashboard): show alert to update oauth providers

## 0.20.22

### Patch Changes

-   c3efb7ec8: feat(dashboard): query latest announcement from platform

## 0.20.21

### Patch Changes

-   3e46d3873: chore: update link to node18 announcement

## 0.20.20

### Patch Changes

-   @nhost/react-apollo@5.0.36
-   @nhost/nextjs@1.13.38

## 0.20.19

### Patch Changes

-   75c4c8ae3: feat(dashboard): make env value input multiline

## 0.20.18

### Patch Changes

- 425d485f8: fix(dashboard): make sure dedicated resources pricing
follows total resources

## 0.20.17

### Patch Changes

-   ae324f67f: fix(dashboard): remove unused graphql fields

## 0.20.16

### Patch Changes

-   df5b4302c: chore(dashboard): remove run feature flag
- bf4a1f6c2: feat(dashboard): fetch auth, postgres, hasura and storage
versions from dashboard
- 34fc08ca7: fix(dashboard/run): show correct private registry in
service details
-   885d10620: chore(dashboard): change feedback to contact us

## 0.20.15

### Patch Changes

- ed16c8b5d: feat(run): add a confirmation dialog when deleting a run
service
- 216990888: fix(run): center loading indicator when selecting a project

## 0.20.14

### Patch Changes

-   9fbea9787: feat: add node18 announcement

## 0.20.13

### Patch Changes

- e84acf469: fix(run): handle subdomain undefined error when creating a
new service

## 0.20.12

### Patch Changes

-   b7c799d62: feat(run): add dialog to copy registry and URLs

## 0.20.11

### Patch Changes

-   8903e6abd: fix(dashboard): show correct egress limit in usage stats

## 0.20.10

### Patch Changes

- 666a75a23: feat(dashboard): add functions execution time and egress
volume to usage stats

## 0.20.9

### Patch Changes

-   5e1e80aa8: fix(dashboard): show correct locales in user details
    -   @nhost/react-apollo@5.0.35
    -   @nhost/nextjs@1.13.37

## 0.20.8

### Patch Changes

-   @nhost/react-apollo@5.0.34
-   @nhost/nextjs@1.13.36

## 0.20.7

### Patch Changes

-   4a7ede11e: fix: distinguish files that were not uploaded
- 202b64723: feat(nhost-run): add support for one-click-install run
services
- 074a0fa11: feat(dashboard): add settings toggle to enable/disable
antivirus
    -   @nhost/react-apollo@5.0.33
    -   @nhost/nextjs@1.13.35

## 0.20.6

### Patch Changes

-   b20761e97: feat(services): add pricing info and confirmation dialog
-   90df6d81d: fix(services): handle null values when editing a service
-   aa8508467: fix: query service logs correctly
    feat: enable multiline support for environment value input

## 0.20.5

### Patch Changes

-   8d7f84b8d: fix: make announcement adapt to theme

## 0.20.4

### Patch Changes

-   3b75bfce2: fix: make announcement close properly
- f49819075: fix: show correct values when dedicated resources are
disabled

## 0.20.3

### Patch Changes

-   e643bd362: fix(services): fix errors when config is null
-   bcdab66bf: feat: add annoucement for nhost run
-   f967a2e59: added note about storage not being able to be downsized
-   311c7756d: chore(services): consistent naming for compute

## 0.20.2

### Patch Changes

-   9073182d5: chore(dashboard): bump `turbo` to 1.10.11
-   ece717d6e: feat(logs): show services in the logs page
- 82b335311: feat(metrics): change grafana link to point to the
dashboards
- b135ef695: fix(services): set command as optional and set min replicas
to 0

## 0.20.1

### Patch Changes

-   3d5c34f4c: fix(auth): fix users pagination limit

## 0.20.0

### Minor Changes

-   c99d117d1: feat(services): add support for custom services

## 0.19.2

### Patch Changes

-   face99ccd: chore(deps): bump turbo version
-   cfe527307: style: tweak pull config warning in dark mode
- a9d7da8af: chore(deps): update dependency @types/pluralize to ^0.0.30
-   9aa4371ef: chore: add hasura-auth version 0.21.2
- d14e112bf: chore(deps): update dependency prettier-plugin-tailwindcss
to ^0.4.0
-   d3e8bb94a: chore(deps): update dependency vite-plugin-dts to v3

## 0.19.1

### Patch Changes

-   @nhost/react-apollo@5.0.32
-   @nhost/nextjs@1.13.34

## 0.19.0

### Minor Changes

- 9c61c69a7: chore(dashboard):add postgres 14.6-20230705-1 to the
version selector

### Patch Changes

-   47bda15ff: feat(settings): add warning to pull config

## 0.18.0

### Minor Changes

- ee0b9b8ed: chore(dashboard):add hasura v2.28.2 and v2.29.0 to the
version selector

## 0.17.20

### Patch Changes

-   @nhost/react-apollo@5.0.31
-   @nhost/nextjs@1.13.33

## 0.17.19

### Patch Changes

-   f866120a6: fix(users): use the password length from the config

## 0.17.18

### Patch Changes

-   @nhost/react-apollo@5.0.30
-   @nhost/nextjs@1.13.32

## 0.17.17

### Patch Changes

-   ea7b102c0: fix(pat): highlight expired tokens

## 0.17.16

### Patch Changes

- b3b64a3b7: chore(deps): bump `@types/react` to `v18.2.14` and
`@types/react-dom` to `v18.2.6`
-   32b221f94: chore(deps): bump `graphiql` to `v3`
-   3a56c12df: chore(deps): bump `turbo` to `v1.10.6`
-   Updated dependencies [b3b64a3b7]
    -   @nhost/react-apollo@5.0.29
    -   @nhost/nextjs@1.13.31

## 0.17.15

### Patch Changes

-   f41fdc12a: chore(deps): bump `turbo` to `1.10.5`
-   6199c1c55: fix(projects): don't redirect to 404 page
-   Updated dependencies [07a45fde0]
    -   @nhost/react-apollo@5.0.28
    -   @nhost/nextjs@1.13.30

## 0.17.14

### Patch Changes

- 80b22724d: chore(deps): bump `@types/react` to `v18.2.13`,
`@types/react-dom` to `v18.2.6` and `@storybook/testing-library` to
`v0.2.0`

## 0.17.13

### Patch Changes

-   cc02902cb: chore(docs): update environment variable documentation

## 0.17.12

### Patch Changes

-   660d339e1: fix(storybook): don't break storybook
-   660d339e1: fix(tests): prevent warnings during tests
    -   @nhost/react-apollo@5.0.27
    -   @nhost/nextjs@1.13.29

## 0.17.11

### Patch Changes

- bd4d0c270: chore(dashboard):add postgres 14.6-20230613-1 to the
version selector

## 0.17.10

### Patch Changes

-   c8c2a10b2: fix(database): don't break the password reset flow
- e70b45498: chore(deps): bump `@types/react` to `v18.2.12` and
`@types/react-dom` to `v18.2.5`

## 0.17.9

### Patch Changes

- 842055099: chore(deps): bump `turbo` to `v1.10.3` and `pnpm` to
`v8.6.2`
- fd12aa0a8: chore(projects): remove the postgres password input from
the project creation screen
-   022b76e78: chore(deps): bump `@types/react` to `v18.2.11`
-   3555ab2b7: chore(deps): bump `vitest` monorepo to `v0.32.0`
-   c43e54922: feat(backups): add download button to backups

## 0.17.8

### Patch Changes

-   d0457fe5c: feat(settings): improve the dashboard and config parity
    -   @nhost/react-apollo@5.0.26
    -   @nhost/nextjs@1.13.28

## 0.17.7

### Patch Changes

-   4f0368b95: fix(account): don't break account settings page

## 0.17.6

### Patch Changes

- 64a8f41d0: chore(resources): lower the maximum allowed resources per
service

## 0.17.5

### Patch Changes

-   @nhost/react-apollo@5.0.25
-   @nhost/nextjs@1.13.27

## 0.17.4

### Patch Changes

- 9b1d0f7a5: fix(deployments): use correct timestamp for deployment
details
-   6d2963ffa: chore(deps): bump `@types/react` to `v18.2.8`
- 8871267b9: chore(deps): downgrade `pnpm` to `v8.5.1` because of no
Turborepo support

## 0.17.3

### Patch Changes

-   01eeef9de: chore(misc): under the hood improvements
- 21e13db05: chore(deps): bump `@types/react` to `v18.2.7` and `turbo`
to `v1.10.1`
- f16433ae6: chore(secrets): allow empty secrets and environment
variables
-   aa3c62989: chore(cli): bump Nhost CLI version to v1.0
    -   @nhost/react-apollo@5.0.24
    -   @nhost/nextjs@1.13.26

## 0.17.2

### Patch Changes

-   88a4983f: chore(misc): under the hood improvements

## 0.17.1

### Patch Changes

-   9b0d4dde: feat(secrets): enable secrets

## 0.17.0

### Minor Changes

-   15d84a19: Add postgres 14.6-20230525

## 0.16.14

### Patch Changes

-   4c626174: chore: updated import paths, improved directory structure
-   cc047b71: chore(deps): bump `@fontsource` monorepo to `v5.0.0`
-   99edd012: feat(account): add support for personal access tokens

## 0.16.13

### Patch Changes

-   78c7109c: feat(settings): allow selecting service versions

## 0.16.12

### Patch Changes

- 399009d6: fix(gql): don't enter an infinite loop when fetching remote
app data
- 329e5a91: fix(deployments): use the same sorting of deployments
everywhere
- 6d559d6e: chore(settings): add under the hood improvements to the
settings page
- 12eb236c: chore(deps): bump `prettier-plugin-tailwindcss` to `v0.3.0`
-   f9b81a2a: chore(deps): bump `turbo` to `v1.9.8`
-   1345741b: fix(projects): don't redirect to 404 on project creation
-   Updated dependencies [7fea29a8]
    -   @nhost/react-apollo@5.0.23
    -   @nhost/nextjs@1.13.25

## 0.16.11

### Patch Changes

- 1230b722: fix(projects): don't redirect to 404 on when the project is
renamed
    -   @nhost/react-apollo@5.0.22
    -   @nhost/nextjs@1.13.24

## 0.16.10

### Patch Changes

-   Updated dependencies [da03bf39]
    -   @nhost/react-apollo@5.0.21
    -   @nhost/nextjs@1.13.23

## 0.16.9

### Patch Changes

- 349aac36: fix(settings): use region domain when constructing the
postgres connection string

## 0.16.8

### Patch Changes

- 20fb69fa: chore(projects): change the way how API URLs are constructed

## 0.16.7

### Patch Changes

- 49f9b837: chore(docker): bump `pnpm` to `v8.4.0` and `turbo` to
`v1.9.3`
- 3f478a4e: chore(deps): bump `vitest` to `v0.31.0`, `@types/react` to
`v18.2.6` and `@types/react-dom` to `v18.2.4`

## 0.16.6

### Patch Changes

- d926f156: fix(projects): redirect to 404 when an invalid project is
opened
- 49b99728: fix(projects): disable features for non-owner members of
workspaces

## 0.16.5

### Patch Changes

-   12e2855f: chore(deps): bump `jsdom` to v22
-   e4972b83: feat(metrics): add Grafana page

## 0.16.4

### Patch Changes

- 3f396a9e: fix(projects): unpause after upgrading a paused project to
pro
- 3f396a9e: fix(projects): don't redirect to 404 page after project
creation

## 0.16.3

### Patch Changes

-   Updated dependencies [90c60311]
    -   @nhost/react-apollo@5.0.20
    -   @nhost/nextjs@1.13.22

## 0.16.2

### Patch Changes

-   0f34f0c6: fix(projects): disallow downgrading to free plan
- 8da291ad: chore(deps): bump `@types/react` to v18.2.0 and
`@types/react-dom` to v18.2.1

## 0.16.1

### Patch Changes

- adc828a5: fix(gql): don't enter an infinite loop when fetching remote
app data

## 0.16.0

### Minor Changes

-   2fb1145f: feat(compute): add support for replicas

### Patch Changes

- d8ceccec: chore(env): remove deprecated `NHOST_BACKEND_URL`
environment variable

## 0.15.2

### Patch Changes

-   84b84ab7: fix(projects): filter projects by workspace

## 0.15.1

### Patch Changes

-   2faf7907: chore(deps): bump `graphql-request` to v6
-   f1b5a944: chore(deps): bump `@vitejs/plugin-react` to v4
-   7f1785ac: chore(deps): bump `@types/react` to v18.0.37
    -   @nhost/react-apollo@5.0.19

## 0.15.0

### Minor Changes

-   85889ee8: feat(dashboard): add Compute management to the settings

## 0.14.8

### Patch Changes

-   668c8771: chore(dialogs): unify dialog management of payment dialogs

## 0.14.7

### Patch Changes

-   d4ccc656: chore: cleanup unused code
    -   @nhost/react-apollo@5.0.18
    -   @nhost/nextjs@1.13.21

## 0.14.6

### Patch Changes

-   b299cfc9: chore(deps): bump `vitest` to v0.30.0
-   411cb65b: chore(projects): refactor workspace and project hooks
- 43b1b144: chore(deps): bump `@types/react` to v18.0.34 and
`@types/react-dom` to v18.0.11
-   Updated dependencies [43b1b144]
    -   @nhost/react-apollo@5.0.17
    -   @nhost/nextjs@1.13.20

## 0.14.5

### Patch Changes

-   ba0d57ee: fix(i18n): revert i18n library
-   3328ed05: feat(projects): improve overview when there is an error

## 0.14.4

### Patch Changes

-   5e0920ba: chore(deps): bump `next-seo` to v6
-   706c9dc3: chore(deps): bump `@types/react` to 18.0.33
-   99f8f6b3: feat(metrics): show metrics on the overview

## 0.14.3

### Patch Changes

-   @nhost/react-apollo@5.0.16

## 0.14.2

### Patch Changes

-   3cb67300: fix(logs): don't break UI when clearing time picker
-   7453bf3b: feat(projects): show project creator info
-   c166dad0: chore(tests): improve auth page tests
-   6a290bb2: chore(deps): bump `@types/react` to 18.0.32

## 0.14.1

### Patch Changes

-   @nhost/react-apollo@5.0.15
-   @nhost/nextjs@1.13.19

## 0.14.0

### Minor Changes

-   6e1f03ea: feat(dashboard): add support for the Azure AD provider

### Patch Changes

-   1bd2c373: chore(deps): bump `turbo` to 1.8.6
-   d329b621: chore(deps): bump `@types/react` to 18.0.30
-   cb248f0d: fix(tests): avoid name collision in database tests
-   867c8076: chore(deps): bump `@types/react` to 18.0.29

## 0.13.10

### Patch Changes

- e93b06ab: fix(dashboard): remove left margin from workspace list on
mobile
-   1c4806bf: chore(deps): bump `sharp` to 0.32.0
    -   @nhost/react-apollo@5.0.14
    -   @nhost/nextjs@1.13.18

## 0.13.9

### Patch Changes

-   912ed76c: chore(dashboard): bump `@apollo/client` to 3.7.10
-   Updated dependencies [912ed76c]
    -   @nhost/react-apollo@5.0.13

## 0.13.8

### Patch Changes

-   7c127372: chore(dashboard): bump `react-error-boundary` to v4

## 0.13.7

### Patch Changes

- 9130ab12: chore(dashboard): bump `yup` to v1 and `@hookform/resolvers`
to v3

## 0.13.6

### Patch Changes

- 253dd235: using new mutation to create projects + refactor Create
Project page.

## 0.13.5

### Patch Changes

-   @nhost/react-apollo@5.0.12
-   @nhost/nextjs@1.13.17

## 0.13.4

### Patch Changes

-   b48bc034: fix(dashboard): disable new users
-   798e591b: fix(dashboard): show correct date in data grid

## 0.13.3

### Patch Changes

-   bfb4c1a6: chore(dashboard): remove `useAxios` property
-   d8d8394b: Dashboard: allow to override hasura admin secret in docker
-   Updated dependencies [ce1ee40d]
    -   @nhost/nextjs@1.13.16
    -   @nhost/react-apollo@5.0.11

## 0.13.2

### Patch Changes

-   beed2eba: Fix docker entrypoint for dashboard
- 2c8559a3: fix(dashboard): refresh project list after deleting a
project
-   4329d048: chore(dashboard): bump `graphiql` dependencies

## 0.13.1

### Patch Changes

-   cbb1fc5b: chore(dashboard): cleanup GraphQL operations

## 0.13.0

### Minor Changes

-   088584e7: feat(dashboard): add support for custom local subdomains

### Patch Changes

-   2ac90dfd: fix(dashboard): improve mobile responsive layout
-   Updated dependencies [f375eacc]
    -   @nhost/nextjs@1.13.15
    -   @nhost/react-apollo@5.0.10

## 0.12.4

### Patch Changes

-   @nhost/react-apollo@5.0.9
-   @nhost/nextjs@1.13.14

## 0.12.3

### Patch Changes

-   2b1338f7: chore(dashboard): bump `turbo` to 1.8.3
- 5223ee93: fix(dashboard): show correct deployment status on the main
page
-   850a049c: chore(deps): update docker/build-push-action action to v4
-   Updated dependencies [850a049c]
    -   @nhost/nextjs@1.13.13
    -   @nhost/react-apollo@5.0.8

## 0.12.2

### Patch Changes

-   4bf40995: chore(deps): bump `typescript` to `4.9.5`
-   8bb097c9: chore(deps): bump `vitest`
- 35d52aab: chore(deps): replace `cross-fetch` with `isomorphic-unfetch`
-   Updated dependencies [4bf40995]
-   Updated dependencies [8bb097c9]
-   Updated dependencies [35d52aab]
    -   @nhost/react-apollo@5.0.7
    -   @nhost/nextjs@1.13.12

## 0.12.1

### Patch Changes

-   c96d7ccd: fix(dashboard): fix docker builds

## 0.12.0

### Minor Changes

-   d1671210: feat(dashboard): use mimir to manage project configuration

### Patch Changes

-   f65e4de9: chore(deps): bump @graphql-codegen monorepo to v3

## 0.11.20

### Patch Changes

-   4b4f0d01: chore(dashboard): improve dialog management

## 0.11.19

### Patch Changes

-   @nhost/react-apollo@5.0.6
-   @nhost/nextjs@1.13.11

## 0.11.18

### Patch Changes

-   01318860: fix(nhost-js): use correct URL for functions requests
-   Updated dependencies [01318860]
    -   @nhost/react-apollo@5.0.5
    -   @nhost/nextjs@1.13.10

## 0.11.17

### Patch Changes

-   f673adea: fix(dashboard): set correct Content-Type for user creation
-   445d8ef4: chore(deps): bump `@nhost/react-apollo` to 5.0.4
-   445d8ef4: chore(deps): bump `@nhost/nextjs` to 1.13.9
- 0368663d: fix(dashboard): allow permission editing for auth and
storage schemas
-   Updated dependencies [445d8ef4]
-   Updated dependencies [445d8ef4]
    -   @nhost/react-apollo@5.0.4
    -   @nhost/nextjs@1.13.9

## 0.11.16

### Patch Changes

-   b755e908: fix(dashboard): use correct date for last seen
-   2d9145f9: chore(deps): revert GraphQL client
- 1ddf704c: fix(dashboard): don't show false positive message for failed
user creation
    -   @nhost/react-apollo@5.0.3
    -   @nhost/nextjs@1.13.8

## 0.11.15

### Patch Changes

-   @nhost/react-apollo@5.0.2
-   @nhost/nextjs@1.13.7

## 0.11.14

### Patch Changes

- 2cc18dcb: fix(dashboard): prevent permission editor dropdown from
being always open

## 0.11.13

### Patch Changes

- 3343a363: chore(dashboard): bump `@testing-library/react` to v14 and
`@testing-library/dom` to v9
    -   @nhost/react-apollo@5.0.1
    -   @nhost/nextjs@1.13.6

## 0.11.12

### Patch Changes

- 87eda76e: chore(dashboard): bump `@types/react` to v18.0.28 and
`@types/react-dom` to v18.0.11
-   6f0ac570: feat(dashboard): show dashboard version in account menu

## 0.11.11

### Patch Changes

-   bf1e4071: chore(dashboard): bump `react-is` version to `18.2.0`
-   Updated dependencies [bf1e4071]
-   Updated dependencies [5013213b]
    -   @nhost/nextjs@1.13.5
    -   @nhost/react-apollo@4.13.5

## 0.11.10

### Patch Changes

- a37a430b: fix(dashboard): don't break UI when deployments are
unavailable
    -   @nhost/react-apollo@4.13.4
    -   @nhost/nextjs@1.13.4

## 0.11.9

### Patch Changes

-   7b970e68: fix(dashboard): fix header link color

## 0.11.8

### Patch Changes

- f33242f2: feat(dashboard): add new sign up, sign in and reset password
pages

## 0.11.7

### Patch Changes

-   e9c8909c: fix(dashboard): use correct theme color in dark mode

## 0.11.6

### Patch Changes

-   902f486b: fix(dashboard): re-enable Hasura on logs page

## 0.11.5

### Patch Changes

-   1f9720fa: fix(dashboard): apply select permissions properly

## 0.11.4

### Patch Changes

-   deb14b51: fix(dashboard): don't break billing form

## 0.11.3

### Patch Changes

-   @nhost/react-apollo@4.13.3
-   @nhost/nextjs@1.13.3

## 0.11.2

### Patch Changes

-   f143e51d: chore(dashboard): pin Turborepo to 1.6.3

## 0.11.1

### Patch Changes

-   c2b5a41a: chore(dashboard): select system colors by default

## 0.11.0

### Minor Changes

-   1ebaf429: feat(dashboard): introduce Dark Mode 🌚

### Patch Changes

- 63b445c4: fixed duplicated logs bug and made to date count during live
mode

## 0.10.1

### Patch Changes

-   e146d32e: chore(deps): update dependency @types/react to v18.0.27
-   59347fcd: correct allowed role name
-   5b65cac9: updated authentication documentation
-   963f9b5e: feat(dashboard): include project info in feedback

## 0.10.0

### Minor Changes

-   ed4c7801: chore(dashboard): remove Functions section

## 0.9.10

### Patch Changes

-   4e2f8ccd: fix(dashboard): don't break Auth page in local mode

## 0.9.9

### Patch Changes

-   31abbe5f: fix(dashboard): enable toggle when settings are filled in

## 0.9.8

### Patch Changes

- 5bdd31ad: chore(dashboard): list fewer images per page on the Storage
page
- 5121851c: fix(dashboard): don't throw validation error for valid
permission rules

## 0.9.7

### Patch Changes

-   c126b20d: fix(dashboard): correct redeployment button

## 0.9.6

### Patch Changes

-   36c3519c: feat(dashboard): retrigger deployments

## 0.9.5

### Patch Changes

- 200e9f77: chore(deps): update dependency @types/react-dom to v18.0.10
-   Updated dependencies [200e9f77]
    -   @nhost/nextjs@1.13.2
    -   @nhost/react-apollo@4.13.2

## 0.9.4

### Patch Changes

- dbd3ded5: fix(dashboard): workspaces creation, new form, correct
redirects.

## 0.9.3

### Patch Changes

-   85f0f943: fix(dashboard): don't break the table creation process

## 0.9.2

### Patch Changes

-   Updated dependencies [d42c27ae]
-   Updated dependencies [927be4a2]
    -   @nhost/nextjs@1.13.1
    -   @nhost/react-apollo@4.13.1

## 0.9.1

### Patch Changes

-   d0f80811: fix(dashboard): don't show error when signing out the user

## 0.9.0

### Minor Changes

- d92891b2: feat(dashboard): add Permission Editor to the Database
section

### Patch Changes

-   3d379128: fix(dashboard): create new user
    -   @nhost/react-apollo@4.13.0
    -   @nhost/nextjs@1.13.0

## 0.8.1

### Patch Changes

-   7cadd944: fix(dashboard): display Twitter provider settings

## 0.8.0

### Minor Changes

-   9a1aa7bb: add functions to the log dashboard
-   f29abe62: feat(dashboard): Users Management v2

### Patch Changes

-   7766624b: feat(dashboard): add JWT secret editor modal
    -   @nhost/react-apollo@4.12.1
    -   @nhost/nextjs@1.12.1

## 0.7.13

### Patch Changes

-   dd0738d5: fix(dashboard): provisioning status polling

## 0.7.12

### Patch Changes

-   b21222b3: chore(deps): update dependency @types/node to v16
-   9e0486a3: fix(dashboard): close modals when navigating
-   Updated dependencies [b21222b3]
-   Updated dependencies [65687bee]
-   Updated dependencies [54df0df4]
    -   @nhost/nextjs@1.12.0
    -   @nhost/react-apollo@4.12.0

## 0.7.11

### Patch Changes

-   d6527122: fix(dashboard): use correct service URLs

## 0.7.10

### Patch Changes

-   Updated dependencies [57db5b83]
    -   @nhost/nextjs@1.11.0
    -   @nhost/nhost-js@1.7.0
    -   @nhost/react@0.17.0
    -   @nhost/react-apollo@4.11.0

## 0.7.9

### Patch Changes

- a6d31dc2: fix(dashboard): don't break the UI when project is not
loaded yet

## 0.7.8

### Patch Changes

- 7f251111: Use `NhostProvider` instead of `NhostReactProvider` and
`NhostNextProvider`

    `NhostReactProvider` and `NhostNextProvider` are now deprecated

-   f4d70f88: fix(dashboard): do not break when region is nullish

- 4a9471cc: Windows Live Provider displayed link updated to match
backend url

- 594488e4: fix(dashboard): do not show error when submitting Apple
provider settings

-   Updated dependencies [7f251111]
    -   @nhost/nextjs@1.10.0
    -   @nhost/react@0.16.0
    -   @nhost/react-apollo@4.10.0

## 0.7.7

### Patch Changes

-   80b604ad: fix(dashboard): use correct Hasura slug

## 0.7.6

### Patch Changes

-   2d2beb53: fix(dashboard): prevent error on GraphQL page
-   ac8efcbd: chore(dashboard): deprecate old DNS name

## 0.7.5

### Patch Changes

-   132a4f4b: chore(dashboard): remove unused dependencies
- 132a4f4b: chore(deps): synchronize @types/react-dom and @types/react
versions
-   db57572f: fix(dashboard): correct section paddings when no env vars
-   Updated dependencies [132a4f4b]
    -   @nhost/react@0.15.2
    -   @nhost/react-apollo@4.9.2
    -   @nhost/nextjs@1.9.3

## 0.7.4

### Patch Changes

-   34d85e54: chore(deps): update dependency critters to ^0.0.16
- 9b93cf95: chore(deps): update dependency @netlify/functions to ^0.11.0
-   e0439030: chore(deps): update dependency @types/react-dom to v18.0.9
-   Updated dependencies [82124329]
    -   @nhost/nextjs@1.9.2

## 0.7.3

### Patch Changes

-   a1193da4: fix(dashboard): remove character limit from env var inputs

## 0.7.2

### Patch Changes

-   44f13f62: chore(dashboard): cleanup unused files

## 0.7.1

### Patch Changes

- e01cb2ed: chore(dashboard): change settings sidebar menu item density

## 0.7.0

### Minor Changes

- db342f45: chore(dashboard): refactor Roles and Permissions settings
sections
-   8b9fa0b1: feat(dashboard): add Environment Variables page

### Patch Changes

-   Updated dependencies [66b4f3d0]
-   Updated dependencies [2e6923dc]
-   Updated dependencies [ef117c28]
-   Updated dependencies [aebb8225]
    -   @nhost/core@0.9.4
    -   @nhost/nhost-js@1.6.2
    -   @nhost/nextjs@1.9.1
    -   @nhost/react@0.15.1
    -   @nhost/react-apollo@4.9.1

## 0.6.0

### Minor Changes

-   eef9c914: feat(dashboard): add Roles and Permissions page

## 0.5.0

### Minor Changes

-   a48dd5bf: feat(dashboard): make backend port configurable

## 0.4.3

### Patch Changes

-   5de965d9: fix(dashboard): alphabetic ordering of providers
-   b9087a4a: fix(dashboard): console -> dashboard terminology
-   ca012d79: docs(workos): WorkOS Docs

## 0.4.2

### Patch Changes

-   89bd37bc: fix(dashboard): correct redirect URL input opacity
-   Updated dependencies [4601d84e]
-   Updated dependencies [843087cb]
    -   @nhost/react@0.15.0
    -   @nhost/nextjs@1.9.0
    -   @nhost/react-apollo@4.9.0

## 0.4.1

### Patch Changes

-   766cb612: fix(dashboard): correct redirect URL for oauth providers
-   Updated dependencies [53bdc294]
-   Updated dependencies [f2aaff05]
    -   @nhost/nextjs@1.8.3
    -   @nhost/core@0.9.3
    -   @nhost/react@0.14.3
    -   @nhost/nhost-js@1.6.1
    -   @nhost/react-apollo@4.8.3

## 0.4.0

### Minor Changes

-   9211743d: feat(dashboard): migrate Settings page features

## 0.3.0

### Minor Changes

-   73da6a67: fix(dashboard): avoid using BACKEND_URL locally

## 0.2.0

### Minor Changes

-   db118f97: feat(dashboard): generate Docker image

## @nhost/docs@2.29.0

### Minor Changes

-   b40d375: feat: added pitr docs

## @nhost-examples/cli@0.3.19

### Patch Changes

-   @nhost/nhost-js@3.2.6

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/react-apollo@17.0.2

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/react-urql@14.0.2

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

### Patch Changes

-   @nhost/nhost-js@3.2.6

## @nhost-examples/nextjs@0.4.5

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/react-apollo@17.0.2
    -   @nhost/nextjs@2.2.5

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

### Patch Changes

-   @nhost/nhost-js@3.2.6

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

### Patch Changes

-   @nhost/nhost-js@3.2.6

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/react-apollo@17.0.2

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2

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

### Patch Changes

-   Updated dependencies [ad57a9e]
    -   @nhost/react@3.10.2
    -   @nhost/react-apollo@17.0.2

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

### Patch Changes

-   @nhost/nhost-js@3.2.6
-   @nhost/apollo@8.0.6
-   @nhost/vue@2.9.3

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

### Patch Changes

-   @nhost/apollo@8.0.6
-   @nhost/vue@2.9.3

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-03-12 13:35:39 +01:00
robertkasza
ad57a9e473 fix (auth): allow to pass headers to email/password sign up (#3201)
### **PR Type**
Enhancement, Bug fix


___

### **Description**
- Allow passing headers to email/password sign-up

- Add tests for custom headers in sign-up

- Fix typos and improve comments

- Update e2e backend script


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>4
files</summary><table>
<tr>
<td><strong>hasura-auth-client.ts</strong><dd><code>Add RequestOptions
to signUp method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-0dbc30932ed723b7fd458066893f29f2f77658436c84adf42613813ea042c992">+7/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>events.ts</strong><dd><code>Add RequestOptions to
SIGNUP_SECURITY_KEY event</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-a1a1ecc9ad9d8ed8e460e0401007a8d479b4d9ba66bc909e1d1458947b5fdf85">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>signUpEmailSecurityKey.ts</strong><dd><code>Add
RequestOptions to signUpEmailSecurityKeyPromise</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-55c8c8ec957b0dc8c8c5a4fe262187b133109408b5664b72f1776e96ec9f1427">+5/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useSignUpEmailSecurityKey.ts</strong><dd><code>Add
RequestOptions to signUpEmailSecurityKey handler</code>&nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-2cf827b3455da361a3ee39b49c1cf1ce6a2dca411b34441a63f7fc1f9e897cf0">+6/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>3 files</summary><table>
<tr>
<td><strong>machine.ts</strong><dd><code>Fix typos and improve
comments</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-a8fdfee087ad5a72ea0a64667e2a0c7f25baa84eaaf73ebfee3f5a5a1b7584d1">+9/-7</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>fetch.ts</strong><dd><code>Fix typo in FetchResponse
interface name</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-b1af9daf6c51514d5d514540f2318d87e926c5e8a57079b6e2c258b98a1163a2">+6/-6</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useSignUpEmailPassword.ts</strong><dd><code>Remove type
assertion for password parameter</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-88cf86ab14d0ece9af1761ddcf1d940ba829317852964748a6033658519370af">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>hasura-auth-client.test.ts</strong><dd><code>Add tests for
custom headers in sign-up</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-f2aedf396c71758c8b69f56f94e22b7f1f8f5cc5b9a2791d1e339dbabd8a8970">+60/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Update e2e:start-backend
script</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3201/files#diff-d95dc3391741287366ea2e61f70e9ccc64452e0d22b1db91d6bf524f5aa4331c">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-03-12 13:14:05 +01:00
David Barroso
b40d375039 feat (docs): added pitr docs (#3223)
### **PR Type**
Documentation


___

### **Description**
- Added comprehensive documentation for database backups and
restoration.

- Introduced details on Point-in-Time Recovery (PITR) feature.

- Updated navigation structure to include the new backups guide.

- Created a changeset file for versioning and release notes.


___



### **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>afraid-seahorses-remain.md</strong><dd><code>Add
changeset for PITR documentation update</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/afraid-seahorses-remain.md

<li>Added a changeset file for versioning.<br> <li> Marked the addition
of PITR documentation as a minor change.


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>mint.json</strong><dd><code>Update navigation to
include backups guide</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

docs/mint.json

<li>Updated navigation to include the new backups guide.<br> <li> Added
<code>guides/database/backups</code> to the database section.


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>backups.mdx</strong><dd><code>Add detailed guide for
database backups and PITR</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

docs/guides/database/backups.mdx

<li>Added a new guide for database backups.<br> <li> Included
instructions for restoring backups and PITR.<br> <li> Provided details
on backup retention and manual backups.<br> <li> Explained restoring
backups on different projects.


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3223/files#diff-06e71a9a155211a9c189660ca578f7471c6bbb7f41efa7571cb5140dbb88e9ef">+153/-0</a>&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-03-12 12:44:38 +01:00
David BM
af61cb737a fix (dashboard): correct user edit default role source (#3230)
### **User description**
Fixes #3219

Also adds 5 minutes timeout to CI install Nhost CLI action


___

### **PR Type**
Bug fix


___

### **Description**
- Correct default role source in user edit form

- Remove unused roles query and data processing

- Update default role options rendering

- Add changeset for version tracking


___



### **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>EditUserForm.tsx</strong><dd><code>Refactor default
role selection in EditUserForm</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/authentication/users/components/EditUserForm/EditUserForm.tsx

<li>Remove <code>useGetRolesPermissionsQuery</code> and related data
processing<br> <li> Update default role options to use
<code>roles</code> prop<br> <li> Replace
<code>allAvailableProjectRoles</code> with direct <code>roles</code>
mapping<br> <li> Adjust <code>Option</code> component key and value
props


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3230/files#diff-6867937d55b269352d4e146ff21b36ca939f6a838ee70b1b29efa9eabad88c2e">+7/-13</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>friendly-beans-arrive.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/friendly-beans-arrive.md

<li>Add new changeset file for version tracking<br> <li> Specify minor
version bump for @nhost/dashboard<br> <li> Include fix description for
default role source


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3230/files#diff-bb459c54d9e0564d4a4f2ad8eb5b5431e0ac151f673bb49ae38ac19ba73def47">+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-03-12 12:16:39 +01:00
robertkasza
f84cd550d9 feat (dashboard): Add PiTR to backups page (#3229)
### **PR Type**
Enhancement


___

### **Description**
- Add Point-in-Time Recovery (PiTR) feature

- Implement backup import functionality

- Update database settings and UI components

- Refactor and improve existing backup components


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>19
files</summary><table>
<tr>
<td><strong>DateTimePicker.tsx</strong><dd><code>Add new DateTimePicker
component</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; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1ad629af5bd959e35b4d7fa2ab0470d644e8762568b8eeda6c2b7190a17452d0">+125/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>TimezoneSettings.tsx</strong><dd><code>Create
TimezoneSettings component for DateTimePicker</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-2cbffc4f494f4b7fb9e1d410a953bfd770da22331fb4cdec8145e06c0fee6478">+39/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>TimePicker.tsx</strong><dd><code>Implement new TimePicker
component</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></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-6c4810545201a0dd4b0ee3fde901f736d745b184c289864ecbb06f8f3998c099">+64/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>VirtualizedCombobox.tsx</strong><dd><code>Add
VirtualizedCombobox component for efficient option
rendering</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1cc84483e00069f85c3c0288f25cd68cf24495439b5f1c40eac35a0f91933763">+245/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>useDatabasePiTRSettings.ts</strong><dd><code>Create hook for
managing PiTR settings</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-e90e7eb41daf536c2d9b59e6212a8f31cb5b698507d87794834ba05aa1bf5b34">+24/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useImportBackupSourceProjectList.tsx</strong><dd><code>Implement
hook for fetching import backup source projects</code></dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-136414e9495d95c3328184caf2703a412d4702ccfc8d1717ef526c0a8da828fd">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useIsPiTREnabled.ts</strong><dd><code>Create hook to check
if PiTR is enabled</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-4c0d423babd527155f9f3886b0034806522fbaa8601b767f4aa8dcd25ea441e3">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>useIsPiTREnabledLazy.ts</strong><dd><code>Implement lazy
loading hook for PiTR status</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-521aa1cfda4f8601fe11d0e27e52c62a85323830e878785e91eb3730818fd5a2">+30/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>usePiTRBaseBackups.ts</strong><dd><code>Create hook for
fetching PiTR base backups</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-eff86f36e559ed015499f44d7d8285417b68a2c6362f8d938412d7b4927bd328">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>

<td><strong>useRestoreApplicationDatabasePiTR.ts</strong><dd><code>Implement
hook for restoring database from PiTR</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-dd5774f502b63d2d443069bedb4c9531a77794a95aaa5c07287093695a4dc60a">+34/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>BackupsContent.tsx</strong><dd><code>Create new
BackupsContent component with tabs</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-e543f89d133a420d24302785cb201bdd02d8841d043a6b9c95df4fce8fbf4a45">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ImportBackupTabContent.tsx</strong><dd><code>Implement
ImportBackupTabContent component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-cb278aa33b215fdf0550e658d9e91f3d826467878d2ab30afa5e7d18e02422ef">+43/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PointInTimeTabsContent.tsx</strong><dd><code>Add
PointInTimeTabsContent component for PiTR</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f3f19f0f85928cb5e9249ba6cd63b408df62fc8e681ae638816977c9f1b9016f">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>ScheduledBackupTabContent.tsx</strong><dd><code>Refactor
ScheduledBackupTabContent component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-546fc678d74ad6b3e7ffdafa83df0d58cc0a49df31b647cae6a9220f0e7c15ef">+36/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>PointInTimeBackupInfo.tsx</strong><dd><code>Create
PointInTimeBackupInfo component for PiTR</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-35be453f6605231bcee5b7f7f78564eb7aa2be723f5169509f9dddfe84477fe6">+63/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>backups.tsx</strong><dd><code>Update backups page to use new
components</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-11c24d569a8109344819d2cc9ce6ffbcf3b75abfba604e299c01289690d322f9">+5/-26</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>graphql.ts</strong><dd><code>Update GraphQL types and
queries for PiTR</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+146/-0</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>getPiTRBaseBackups.graphql</strong><dd><code>Add GraphQL
query for PiTR base backups</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-66811bf0abb1c941e2501d90c4b7bffb39ef30338c98d6c9ee20facde3b5f2d5">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>

<td><strong>restoreApplicationDatabasePiTR.graphql</strong><dd><code>Add
GraphQL mutation for PiTR database restore</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-4b8a543fb86cfca8e3041c00454ad9ff3cac7fc92b75ab3840e057961a169f34">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>package.json</strong><dd><code>Update dependencies and add
new packages</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+6/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Additional
files</strong></td><td><details><summary>62 files</summary><table>
<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-e41e4cb8c926d6561aeed59ddaadd8a883462fbfc6e51081f48feb089599a982">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>TimePickerInput.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-970eb8f755f27a1e13f0d24230c403ffd1e5ad7829e14b67690373bcdade1277">+148/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1c4caf14e81e8ebe413cd16c1fdf71a5b99059540eb8e6c230ec0ed7948eea70">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>time-picker-utils.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-539dd838376d43e44041d8ff8a8d3a9d3405661d2775788eadb50d4bad1db512">+244/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>TimezonePicker.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1219e627fa38850183eec3d695ae39c4b607b2ed62255789917672e999ceca55">+33/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1da85db0b242da76756df5ac70f3068f2c53f1b9616ccbd3da08805a80c549af">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-daf57b3357b1698296dcc41422780614a29e9451007df41e7153c270e05c0085">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>button.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-3128c8a9c83cc7319d992e31c2cba551cde0d85037f42a5a74a47464d7e80f82">+14/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>calendar.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-63f846015a12e66f0c36ec550d502d6d00a250959957652d14460807f1fbe68d">+80/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>dialog.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f2ef2b36b8f85ecc699ce3c64158a9018a0a15242b9f945d2bedc40b7c59c102">+12/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>spinner.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-0404df81ce8503d881cd2f3f1ac59865aafd65f559e6a335cd79e2c49fe31476">+56/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>tabs.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-bc5ee4fa7f3a98e85560de1abffcae71bc527bf8087ea152f3c5ae8246ed1b1a">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>InfoAlert.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-4b78a2f0e1c6c2f6b37e430bc6cad016e884bb34735bd6aaebac906743748d7b">+31/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-1ed5caad9d58ebed38957a3d8db2a395b84a6f11abd4fc9455b9e895ba0a0a76">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-d3e8f38360bc461e1c7d52084c21729bd3af11ca4ff72fe6e07cbe78f4a756a5">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useUpdateDatabasePITRConfig.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-9c0f751418c04e20ce5b992961fe3ae779dd056e16188ad0684236e91debb333">+0/-24</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-9401c95cb391dc84bd88c87dc7bbb84f4a04a17ce3768a7aa03e4df600985ae8">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-ee9a711d701edfc23d3fdee2d93d574e9c7335c620852dfd6b0042d91928bdca">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-ada2a14aa3c012af7ef896b6b5b34073c7122e2e76e02fc528e0f67ed3a0762a">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useIsPITREnabled.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-ccadf282438731d649162e5f7a2f778e235cee170c660e6db945107bac075485">+0/-16</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7703cb7870d19609bb12fa3a5be2c0cc397cc017fbb723b896e789d9d475f185">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f7e86e2560ce15ecfc052a73c255d1bf2fcbf4c5ce93701cb3d7ea0cdf076da9">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7276ebfe36c94d90f1b8d25753263d068d4ab5af794a2fc0ca926ba18b30c982">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f635e9c12762de8ab4d9ff62302eeffda1e3c8b3efb3760cd59a7c16052f6fb6">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f1322a198c8a57293119cabf169954842e63df112322af72c7bdeb13366bf567">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>useUpdateDatabasePiTRConfig.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-b91403cefffce18a9a12888f9c702c8567fad60130fca863b7c7e790fa2219ee">+8/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-e25cc47626c366456dd2206f613fa5d4bdfcdec5c750b5ae99c4c8d44d8df47f">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-b28f78fd315d021c6a3c1d46b90beac22d3a98eba6ca15f6ca79f75b84f84fa8">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-45ea1cacd064ba79052f50bf5e9dace59c801c0b9c43b541c4b1fa1d1c53f76d">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>NoOtherProjectsInRegion.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-cb4d6fd1bc9222df18ec07bf803884bcd2abf2562b9ae9c4c66a66dbfc05c153">+18/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>PiTRNotEnabledOnSourceProject.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-bde1eb77a9da964612758a7795ef0bbc7d7ea40b9f4d278788e7f0d9ac0f74f4">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>SourceProjectBackupInfo.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-4bf8851fed9997b78e62e1d94dced8ceff8eda855e11d1cfedb7d23130363c37">+28/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>SourceProjectSelect.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-a04579d221dea095e7af4b3ec68e7d07ce7fa3765e25708e3bec22f89160e9b4">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-9ddf7da80e5964414404d5c715c3da5a614b97e3263698d4c0be4db1e7c1f8ed">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PiTRNotEnabled.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-a1d251614eecca4406816b18302a1af226aee95d01d04858661a30e6fb07218d">+24/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>PointInTimeRecovery.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-b0756ee9cd0789a2de53c5389d6a102bac50500bef97b809f55357798a939b5a">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>RecoveryRetentionPeriod.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-631ff2a064d17d9ee08a6fecbf204908dd2e72b0dab8c23670b343b74fd41e8c">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-6bcbb9922adb6b20bb23a7dc1b1272751d9813391af6bcccc4cf3ed4f7a2c727">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-8ba7b8d6096ee695aa7c1a92402a4d377b6777296e5b13cb345964be623fcbf9">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BackupList.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-fbd66a866aec5e50da247ecf43eabf32909e0648f682525b9554dd908a40d910">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BackupListItem.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-319aac4df7906607fc84a6e8d0ba510fbf49ea92d6ccda5ab48c50e8f1ec33d5">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>PiTREnabledInfoBanner.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7dab58d90b66701b52fff767835c62a8218bfe3c844544869052d8d32a87e37e">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>RestoreBackupModal.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f7caf91cec87922fc8a3ea4941b0dd6f752a4d542652d93f6c9a6219763fcfd4">[link]</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-243bca977e6e898b72be8e6739efb1b14aedd34d616a367746d7e62705289a20">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>BackupScheduledInfo.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-b7b769edd56e42710aca4bfb85af7d6bd0173d67f024478e4c68f0f7d23dd957">+46/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>EarliestBackup.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-c4d1332e7f0b63d50f679d7b56696d5cc53712b22bb53d44b2fcf064d79c8cb0">+53/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>RestoreBackupDialogButton.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-eed1e2ca6d4002ec218cd16e69ed81160c8c8982877c65ace80d12b88aefd6ef">+208/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>StartRestoreConfirmationCheck.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-56f1657d2302ecc9f2e34cc78363cfb90954791517b1ad23ec06f34b10bde37e">+35/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-77b497855973d099f547efc622b403bf1bdbd475b1503e36d581b7c48c525952">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>getDateTimeStringWithUTCOffset.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-420bbeebf0a8b98242780ea3b78ff843f33559c9b766b0c343b1c5d180a92e69">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-94eeb0af5cef2989a172bef83e67e72d1dcfdd18da56b04c274c34eac5ac19eb">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DatabasePiTRSettings.test.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-85d1f82a571b56469eab40dcc164fdd1e107fba79611ddd5cca7c191fe5117b4">+11/-11</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>DatabasePiTRSettings.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7a638c446af8419249770dc8da1ea522f950163b1d0045020927216c38db8cec">+12/-12</a>&nbsp;
</td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-398e23d6c879dd409f4ef19d13cba6372ec1e6044d3293a34e3c23fe2f8e02bd">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentStatusMessage.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7e077798c520eb4aada9d1a39d2e3f1a1ac573a821d57c64608e682b41150390">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>DeploymentStatusMessage.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-54e74ec65ab87fbf5a4344bbaf282c68809608ca9cfa8566a515b3f31259cad0">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>utils.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-57035bfd3b91de326fec3e5a0bf19487f03130a9a09dc3e428c79f556677081b">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>database.tsx</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-00045ae38a73178045bcda39c80a03a0cb46413641586896a628c3a2a22c7855">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>index.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-b6be6198288cbb31a42f700a54e21842f253626d36940f7011b5d29a9311d0fd">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>timezone-utils.ts</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-f80a0f62570505fcb30922366a5aea365d62b1ba25065d7717277704c4161741">+73/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td><strong>package.json</strong></td>
<td><a
href="https://github.com/nhost/nhost/pull/3229/files#diff-27f71682a447c654ff4a94d33944ebb70e10d07a4279107c230bd8ec7dce7391">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-03-12 12:13:49 +01:00
robertkasza
1986178f7a feat (dashboard): add PITR setting to database setting page (#3224)
### **PR Type**
Enhancement


___

### **Description**
- Add Point-in-Time Recovery (PITR) settings to database

- Implement hooks for PITR configuration management

- Create new components for PITR UI

- Update GraphQL schema for PITR support


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>15
files</summary><table>
<tr>
<td><strong>index.ts</strong><dd><code>Export useDatabasePITRSettings
hook</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-d3e8f38360bc461e1c7d52084c21729bd3af11ca4ff72fe6e07cbe78f4a756a5">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useUpdateDatabasePITRConfig.ts</strong><dd><code>Implement
useDatabasePITRSettings hook</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-9c0f751418c04e20ce5b992961fe3ae779dd056e16188ad0684236e91debb333">+21/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export useIsPITREnabled
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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-ada2a14aa3c012af7ef896b6b5b34073c7122e2e76e02fc528e0f67ed3a0762a">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useIsPITREnabled.ts</strong><dd><code>Implement
useIsPITREnabled 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; &nbsp; &nbsp; &nbsp;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-ccadf282438731d649162e5f7a2f778e235cee170c660e6db945107bac075485">+16/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export
useUpdateDatabasePITRConfig hook</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-f635e9c12762de8ab4d9ff62302eeffda1e3c8b3efb3760cd59a7c16052f6fb6">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useUpdateDatabasePITRConfig.ts</strong><dd><code>Implement
useUpdateDatabasePITRConfig hook</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-e8f221b95a9e889c359f7b3ff35ce8ea5f3b7090abfdae57c4f1d2ef54d89fb7">+57/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Add export for
useIsNotPlatform</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-7e4f0dbd79622a9b7ff5b2e04717d645a98b1b723f107658e18c274f890ed627">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>useIsPlatform.ts</strong><dd><code>Add useIsNotPlatform
function</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;
</dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-eea9e9627c2314fd248713d113a88db30a99809d00ebbfdcca83689a35c4bdbc">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>postgresqlConstants.ts</strong><dd><code>Add
RECOVERY_RETENTION_PERIOD_7 constant</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-b497da90feca5bff94b0d38b69e519d171d43acc292098054d672a73a89b4717">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>DatabasePitrSettings.tsx</strong><dd><code>Implement
DatabasePitrSettings component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-d7657adf6ee83cf09cebc9854dc4742bab9a23517e3277d09db923ca309be91b">+50/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>index.ts</strong><dd><code>Export DatabasePitrSettings
component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-20e8098340a0bcb8723cfd67e938f481d7172dcf6de4610e826a2d568948b0f4">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>database.tsx</strong><dd><code>Add DatabasePitrSettings to
database settings page</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-00045ae38a73178045bcda39c80a03a0cb46413641586896a628c3a2a22c7855">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>graphql.ts</strong><dd><code>Update GraphQL types for PITR
support</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-fbd5db84b560b1c91675004448c6c7fa0dcbfb28b9eb05d53b03e6cb7b83ebac">+75/-1</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>getPostgresSettings.gql</strong><dd><code>Add PITR retention
to PostgreSQL settings query</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-1acee16f252288335d1bb4d8af5ca313d66f75edd0d62fe29e6d38d4653393f7">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>getPostgresSettings.gql</strong><dd><code>Add PITR retention
to PostgreSQL settings query</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/nhost/pull/3224/files#diff-d77873957f82dd65a26ae7beca2440148d8ba6911f5bed4bdeb6cf1ad6de7f25">+3/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></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-03-12 08:55:53 +01:00
dependabot[bot]
a957f4051a chore: bump cachix/install-nix-action from 30 to 31 (#236)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 30 to 31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v31</h2>
<h2>What's Changed</h2>
<ul>
<li>nix: 2.24.9 -&gt; 2.25.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/218">cachix/install-nix-action#218</a></li>
<li>ci: fix latest installer tests by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/220">cachix/install-nix-action#220</a></li>
<li>ci: add ubuntu-24.04-arm to matrix by <a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
<li>nix: 2.25.2 -&gt; 2.26.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/226">cachix/install-nix-action#226</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> made
their first contribution in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">https://github.com/cachix/install-nix-action/compare/v30...v31</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="91a0719595"><code>91a0719</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/226">#226</a>
from Mic92/nix-update</li>
<li><a
href="d81eadf041"><code>d81eadf</code></a>
nix: 2.25.2 -&gt; 2.26.2</li>
<li><a
href="3d69a1d4d2"><code>3d69a1d</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/221">#221</a>
from msgilligan/msgilligan/github-test-aarch64-linux</li>
<li><a
href="265a04a520"><code>265a04a</code></a>
GitHub test.yml: add ubuntu-24.04-arm to matrix</li>
<li><a
href="89fd1e98db"><code>89fd1e9</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/220">#220</a>
from cachix/fix-master-tests</li>
<li><a
href="a76df16350"><code>a76df16</code></a>
ci: bump nixpkgs channel</li>
<li><a
href="a49b703498"><code>a49b703</code></a>
ci: fix act test</li>
<li><a
href="f3f544c44b"><code>f3f544c</code></a>
ci: fix latest installer tests</li>
<li><a
href="14344b39ca"><code>14344b3</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/218">#218</a>
from Mic92/nix-upgrade</li>
<li><a
href="b1deb06f62"><code>b1deb06</code></a>
nix: 2.24.9 -&gt; 2.25.2</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=30&new-version=31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 10:34:33 +01:00
dependabot[bot]
9ba3c6c326 chore: bump cachix/install-nix-action from 30 to 31 (#615)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 30 to 31.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v31</h2>
<h2>What's Changed</h2>
<ul>
<li>nix: 2.24.9 -&gt; 2.25.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/218">cachix/install-nix-action#218</a></li>
<li>ci: fix latest installer tests by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/220">cachix/install-nix-action#220</a></li>
<li>ci: add ubuntu-24.04-arm to matrix by <a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
<li>nix: 2.25.2 -&gt; 2.26.2 by <a
href="https://github.com/Mic92"><code>@​Mic92</code></a> in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/226">cachix/install-nix-action#226</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/msgilligan"><code>@​msgilligan</code></a> made
their first contribution in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/221">cachix/install-nix-action#221</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">https://github.com/cachix/install-nix-action/compare/v30...v31</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="91a0719595"><code>91a0719</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/226">#226</a>
from Mic92/nix-update</li>
<li><a
href="d81eadf041"><code>d81eadf</code></a>
nix: 2.25.2 -&gt; 2.26.2</li>
<li><a
href="3d69a1d4d2"><code>3d69a1d</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/221">#221</a>
from msgilligan/msgilligan/github-test-aarch64-linux</li>
<li><a
href="265a04a520"><code>265a04a</code></a>
GitHub test.yml: add ubuntu-24.04-arm to matrix</li>
<li><a
href="89fd1e98db"><code>89fd1e9</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/220">#220</a>
from cachix/fix-master-tests</li>
<li><a
href="a76df16350"><code>a76df16</code></a>
ci: bump nixpkgs channel</li>
<li><a
href="a49b703498"><code>a49b703</code></a>
ci: fix act test</li>
<li><a
href="f3f544c44b"><code>f3f544c</code></a>
ci: fix latest installer tests</li>
<li><a
href="14344b39ca"><code>14344b3</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/218">#218</a>
from Mic92/nix-upgrade</li>
<li><a
href="b1deb06f62"><code>b1deb06</code></a>
nix: 2.24.9 -&gt; 2.25.2</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v30...v31">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=30&new-version=31)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-11 10:34:03 +01:00
David Barroso
0f9adf9698 feat: added support for smtp login authentication (#613)
### **User description**
Fixes #612


___

### **PR Type**
Enhancement


___

### **Description**
- Added support for SMTP LOGIN authentication method

- Removed deprecation warning for LOGIN method

- Replaced PLAIN auth with LOGIN auth for LOGIN method


___



### **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>email.go</strong><dd><code>Implement SMTP LOGIN
authentication</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>

go/cmd/email.go

<li>Implemented LOGIN authentication for SMTP<br> <li> Removed
deprecation warning for LOGIN method<br> <li> Replaced PLAIN auth with
LOGIN auth for LOGIN method


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/613/files#diff-a6364ed092c8bd789262322ec1e0108c274323462a0af0b7c7dd10a07f0bc449">+1/-2</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-03-07 11:35:43 +01:00
David Barroso
47bd415a97 chore: update minio (#235) 2025-03-05 15:40:10 +01:00
David BM
aa9210c838 fix (dashboard): run services with secrets in the command field (#3208)
### **User description**
Fixes #3070


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Refactor command input to list format

- Fix parsing issues with secrets in commands

- Improve UI for command input section

- Update related components and types


___



### **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>ServiceForm.tsx</strong><dd><code>Replace command input
with new CommandFormSection component</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServiceForm/ServiceForm.tsx

<li>Remove shell-quote parsing<br> <li> Replace single command input
with CommandFormSection<br> <li> Update service configuration to use new
command format


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>ServiceFormTypes.ts</strong><dd><code>Update command
validation schema and type definition</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServiceForm/ServiceFormTypes.ts

<li>Update command validation schema<br> <li> Change command type from
string to array of objects


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>CommandFormSection.tsx</strong><dd><code>Create new
CommandFormSection component for improved command
input</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServiceForm/components/CommandFormSection/CommandFormSection.tsx

<li>Add new CommandFormSection component<br> <li> Implement dynamic
command input fields<br> <li> Add space detection warning<br> <li>
Include tooltip with usage instructions


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3208/files#diff-952b9cf5789c2075527c9289b6464a1a678bb3e2f1073e5493eb871eec33c650">+112/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Add index file for
CommandFormSection component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServiceForm/components/CommandFormSection/index.ts

- Export CommandFormSection component


</details>


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

</tr>
</table></td></tr><tr><td><strong>Bug fix</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>ServiceConfirmationDialog.tsx</strong><dd><code>Update
import path in ServiceConfirmationDialog</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServiceForm/components/ServiceConfirmationDialog/ServiceConfirmationDialog.tsx

- Update import path for ServiceFormValues type


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>ServicesList.tsx</strong><dd><code>Adjust command
formatting in ServicesList component</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/services/components/ServicesList/ServicesList.tsx

- Update command formatting in initialData


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3208/files#diff-643c818a248c42950336289392ac97ed9ef5c670ff8e47b80588b9802844d28a">+3/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>run.tsx</strong><dd><code>Modify command formatting in
run page configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/src/pages/orgs/[orgSlug]/projects/[appSubdomain]/run.tsx

- Update command formatting in parsedConfig


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>famous-seahorses-taste.md</strong><dd><code>Add
changeset for command field secrets fix</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

.changeset/famous-seahorses-taste.md

<li>Add changeset for minor version bump<br> <li> Describe fix for
secrets in command field


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3208/files#diff-c71b086d2f313eeb58415afe90205c8e3161c83587b659e9d5ae594bff48b96a">+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-03-05 13:40:12 +01:00
David BM
695466df95 chore (dashboard): simplify personal project deletion checkboxes (#3225)
### **User description**
This PR removes the `I understand I need to delete the organization if I
want to cancel the subscription` checkbox when deleting a project if
it's part of a personal organization (`org.plan.isFree == true`)


___

### **PR Type**
Enhancement


___

### **Description**
- Simplify personal project deletion flow

- Remove subscription cancellation checkbox for free plans

- Add conditional rendering based on plan type

- Update project deletion button disabled state


___



### **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>RemoveApplicationModal.tsx</strong><dd><code>Conditional
rendering of deletion checkboxes based on plan
type</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/common/components/RemoveApplicationModal/RemoveApplicationModal.tsx

<li>Add <code>isPlanFree</code> variable to check if org plan is
free<br> <li> Conditionally render subscription cancellation
checkbox<br> <li> Update button disabled state based on
<code>isPlanFree</code>


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>grumpy-pigs-cough.md</strong><dd><code>Add changeset
for personal project deletion simplification</code></dd></summary>
<hr>

.changeset/grumpy-pigs-cough.md

<li>Add changeset file for minor version bump<br> <li> Include
description of changes for personal project deletion


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3225/files#diff-55a0b89d9ef990ec3e8deec02e8bea4f55e8d236a6f1c1ad95837ecf4f428154">+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-03-04 19:38:44 +01:00
David BM
fe23bde306 chore (ci): local dashboard e2e tests with CLI (#3222)
### **User description**
Resolves #3173


___

### **PR Type**
Enhancement, Tests


___

### **Description**
- Add e2e tests for local dashboard with CLI

- Create new playwright configuration for local tests

- Update GitHub Actions for local dashboard testing

- Modify Nhost CLI action to support initialization


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>cli-local-dashboard.test.ts</strong><dd><code>Add e2e
tests for local dashboard</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;
</dd></summary>
<hr>

dashboard/e2e/cli-local-dashboard/cli-local-dashboard.test.ts

<li>Add test for redirecting '/' to correct project URL<br> <li> Add
test for loading project URL correctly<br> <li> Verify visibility of
'Subdomain' text on project page


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3222/files#diff-69ade2acd215d2133e01fc3034eb291819613037596b96d4114f2f4c8489e7c1">+21/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Configuration
changes</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>playwright.config.ts</strong><dd><code>Update main
playwright config</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; </dd></summary>
<hr>

dashboard/playwright.config.ts

- Exclude 'Local Dashboard CLI e2e tests' from main configuration


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>playwright.local.config.ts</strong><dd><code>Add new
playwright config for local tests</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

dashboard/playwright.local.config.ts

<li>Create new playwright configuration for local dashboard tests<br>
<li> Set specific test matching for CLI local dashboard tests<br> <li>
Configure browser and test settings for local testing


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>dirty-snakes-tell.md</strong><dd><code>Add changeset
for dashboard e2e tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/dirty-snakes-tell.md

<li>Add changeset for minor version bump of @nhost/dashboard<br> <li>
Describe addition of e2e tests for local dashboard with CLI


</details>


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

</tr>
</table></td></tr><tr><td><strong>Enhancement</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>action.yaml</strong><dd><code>Enhance Nhost CLI action
with new features</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/actions/nhost-cli/action.yaml

<li>Add 'init' input to initialize new projects<br> <li> Add
'dashboard-image' input for custom dashboard images<br> <li> Implement
logic for initializing projects and using custom images


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>ci.yaml</strong><dd><code>Update CI workflow for local
dashboard testing</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/ci.yaml

<li>Add steps to build and test dashboard locally<br> <li> Implement
Nhost CLI initialization for dashboard tests<br> <li> Add step to run
local dashboard e2e tests


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>test-nhost-cli-action.yaml</strong><dd><code>Refactor
Nhost CLI action test workflow</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/test-nhost-cli-action.yaml

<li>Update Nhost CLI action usage to use 'init' parameter<br> <li>
Modify version checks and expected output<br> <li> Adjust paths and
commands for testing


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add local e2e test
script to package.json</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

dashboard/package.json

<li>Add new 'e2e-local' script for running local dashboard tests<br>
<li> Update 'e2e' script to use specific playwright config


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3222/files#diff-2d8d55c799cd71f1b35e831f075f8178ed1734c4820a2ad548b4dd24d6938d7c">+2/-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-03-04 17:35:27 +01:00
David BM
ea2dbf8734 fix (dashboard): can change minor database version with unhealthy project (#3210) 2025-03-04 14:26:44 +01:00
dependabot[bot]
9aa6b02523 chore: bump Codium-ai/pr-agent from 0.26 to 0.27 (#611)
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.26 to 0.27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.27</h2>
<h2><a
href="https://hub.docker.com/repository/docker/codiumai/pr-agent/tags">Docker
tags</a></h2>
<p>codiumai/pr-agent:0.27
codiumai/pr-agent:0.27-github_app
codiumai/pr-agent:0.27-bitbucket-app
codiumai/pr-agent:0.27-gitlab_webhook
codiumai/pr-agent:0.27-github_action
codiumai/pr-agent:0.27-azure_devops_webhook</p>
<h2>What's Changed</h2>
<ul>
<li>Support pull requests in personal spaces in Bitbucket Server by <a
href="https://github.com/vishwamartur"><code>@​vishwamartur</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1406">qodo-ai/pr-agent#1406</a></li>
<li>docs: update FAQ with new questions and improve formatting by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1430">qodo-ai/pr-agent#1430</a></li>
<li>Add documentation for <code>/implement</code> tool and enhance
<code>/test</code> tool references
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1433">qodo-ai/pr-agent#1433</a></li>
<li>Tr/ollama by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1434">qodo-ai/pr-agent#1434</a></li>
<li>fix : pr type rendering with markers by <a
href="https://github.com/benedict-lee"><code>@​benedict-lee</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1442">qodo-ai/pr-agent#1442</a></li>
<li>fix : support ai title with markers by <a
href="https://github.com/benedict-lee"><code>@​benedict-lee</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1441">qodo-ai/pr-agent#1441</a></li>
<li>fix: refine code suggestions prompts and avoid package-related
comments by <a href="https://github.com/mrT23"><code>@​mrT23</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1446">qodo-ai/pr-agent#1446</a></li>
<li>docs: add missing word by <a
href="https://github.com/pdecat"><code>@​pdecat</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1448">qodo-ai/pr-agent#1448</a></li>
<li>fix(azure-provider): handle renamed files as new files by <a
href="https://github.com/med8bra"><code>@​med8bra</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1452">qodo-ai/pr-agent#1452</a></li>
<li>Support deepseek-chat model by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1457">qodo-ai/pr-agent#1457</a></li>
<li>fix(local_git): add interface func stubs for git local provider by
<a
href="https://github.com/polacekpavel"><code>@​polacekpavel</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1455">qodo-ai/pr-agent#1455</a></li>
<li>docs: add target blank to external links in documentation by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1467">qodo-ai/pr-agent#1467</a></li>
<li>Add <code>vertex_ai/gemini-2.0-flash-exp</code> by <a
href="https://github.com/yu-iskw"><code>@​yu-iskw</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1466">qodo-ai/pr-agent#1466</a></li>
<li>README: Replace Codium and PR-Agent with Qodo and Qodo-Merge by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1471">qodo-ai/pr-agent#1471</a></li>
<li>Remove false log that file was modified, but no patch found for
bitbucket server by <a
href="https://github.com/gryphon-ops"><code>@​gryphon-ops</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1469">qodo-ai/pr-agent#1469</a></li>
<li>Add support model deepseek/deepseek-reasoner by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1473">qodo-ai/pr-agent#1473</a></li>
<li>docs: reorganize installation documentation structure by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1475">qodo-ai/pr-agent#1475</a></li>
<li>refactor: simplify review effort label format and remove maximal
effo… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1477">qodo-ai/pr-agent#1477</a></li>
<li>Add <code>IMPLEMENT</code> tool and reorganize help message content
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1484">qodo-ai/pr-agent#1484</a></li>
<li>feat: enhance ticket compliance analysis with human verification
tracking by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1486">qodo-ai/pr-agent#1486</a></li>
<li>Add GitHub issue templates for bug reports and feature requests
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1478">qodo-ai/pr-agent#1478</a></li>
<li>Add CONTRIBUTING.md with contribution guidelines and setup
instructions
by <a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1500">qodo-ai/pr-agent#1500</a></li>
<li>fix: add fallback for parsing AI responses with leading '+' symbols
by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1506">qodo-ai/pr-agent#1506</a></li>
<li>Use <code>pip install</code> with <code>--no-cache-dir</code> in
Dockerfiles by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1510">qodo-ai/pr-agent#1510</a></li>
<li>Define user_message_only_models list for using user prompt only
model by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1509">qodo-ai/pr-agent#1509</a></li>
<li>feat: improve code suggestions table with impact levels and styling
by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1514">qodo-ai/pr-agent#1514</a></li>
<li>Create CODE_OF_CONDUCT.md by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1515">qodo-ai/pr-agent#1515</a></li>
<li>Create SECURITY.md by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1517">qodo-ai/pr-agent#1517</a></li>
<li>docs: update README with new design and remove outdated news by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1522">qodo-ai/pr-agent#1522</a></li>
<li>fix: update review effort label format to use X/5 notation by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1532">qodo-ai/pr-agent#1532</a></li>
<li>feat: improve help tool with markdown header formatting and error
han… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in
<a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1534">qodo-ai/pr-agent#1534</a></li>
<li>Add : pull_request_target event on GitHub Actions integration by <a
href="https://github.com/hi120ki"><code>@​hi120ki</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1531">qodo-ai/pr-agent#1531</a></li>
<li>Use <code>pip install</code> with <code>--no-cache-dir</code> in
<code>Dockerfile.github_action</code> by <a
href="https://github.com/PeterDaveHello"><code>@​PeterDaveHello</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1536">qodo-ai/pr-agent#1536</a></li>
<li>Refactoring <code>LiteLLMAIHandler</code> class for better using
reasoning models by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1537">qodo-ai/pr-agent#1537</a></li>
<li>Support generally available <code>gemini-2.0-flash</code> by <a
href="https://github.com/yu-iskw"><code>@​yu-iskw</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1539">qodo-ai/pr-agent#1539</a></li>
<li>Update README.md by <a
href="https://github.com/AdamWalkerQodo"><code>@​AdamWalkerQodo</code></a>
in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1550">qodo-ai/pr-agent#1550</a></li>
<li>feat: add support for custom reasoning models by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/qodo-ai/pr-agent/pull/1551">qodo-ai/pr-agent#1551</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7cf521c001"><code>7cf521c</code></a>
fix: improve null safety in GitLab webhook handler</li>
<li><a
href="e71c0f1805"><code>e71c0f1</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1586">#1586</a>
from qodo-ai/tr/docs245</li>
<li><a
href="8182a4afc0"><code>8182a4a</code></a>
docs: update default model to o3-mini and improve language configuration
inst...</li>
<li><a
href="3817aa2868"><code>3817aa2</code></a>
fix: remove redundant temperature logging in litellm handler</li>
<li><a
href="94a8606d24"><code>94a8606</code></a>
fix: update default configuration values for publishing and
verbosity</li>
<li><a
href="af635650f1"><code>af63565</code></a>
fix: improve response language handling and configuration
documentation</li>
<li><a
href="222f276959"><code>222f276</code></a>
docs: add language configuration documentation and update changelog</li>
<li><a
href="9a32e94b3e"><code>9a32e94</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1579">#1579</a>
from qodo-ai/response-language-configuration</li>
<li><a
href="7c56eee701"><code>7c56eee</code></a>
Update README.md</li>
<li><a
href="48b3c69c10"><code>48b3c69</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1575">#1575</a>
from GOOD21/feature/draft-ready-trigger</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.26...v0.27">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.26&new-version=0.27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-04 09:59:55 +01:00
dependabot[bot]
730948f07b chore: bump nixbuild/nix-quick-install-action from 29 to 30 (#234)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 29 to 30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v30</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.18.8, 2.19.6, 2.20.8, 2.21.4, 2.23.3</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.9 -&gt; 2.24.12
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.25.5, 2.26.1</p>
</li>
<li>
<p>Bump default Nix version: 2.24.9 -&gt; 2.24.12</p>
</li>
<li>
<p>Add support for <code>ubuntu-24.04-arm</code> (aarch64-linux)
runners.</p>
</li>
<li>
<p>Enable support for KVM in builds. Can be turned off with the new
<code>enable_kvm</code>
configuration option.</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v30</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.18.8, 2.19.6, 2.20.8, 2.21.4, 2.23.3</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.9 -&gt; 2.24.12
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.25.5, 2.26.1</p>
</li>
<li>
<p>Bump default Nix version: 2.24.9 -&gt; 2.24.12</p>
</li>
<li>
<p>Add support for <code>ubuntu-24.04-arm</code> (aarch64-linux)
runners.</p>
</li>
<li>
<p>Enable support for KVM in builds. Can be turned off with the new
<code>enable_kvm</code>
configuration option.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5bb6a3b3ab"><code>5bb6a3b</code></a>
Release v30</li>
<li><a
href="607b4cf724"><code>607b4cf</code></a>
Remove outdated documentation (fixes <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/57">#57</a>)</li>
<li><a
href="5f5c23a20a"><code>5f5c23a</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/52">#52</a>
from azuwis/macos-volume</li>
<li><a
href="9f331f3772"><code>9f331f3</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/59">#59</a>
from nixbuild/readd_nix_2_3</li>
<li><a
href="904096fd8f"><code>904096f</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/56">#56</a>
from Smona/enable-kvm-on-linux</li>
<li><a
href="acdadbc3a6"><code>acdadbc</code></a>
Nix 2.3 doesn't work on aarch64-linux for some reason</li>
<li><a
href="0006832f24"><code>0006832</code></a>
ci: Fix syntax</li>
<li><a
href="450f0c1fe7"><code>450f0c1</code></a>
ci: Exclude Nix 2.3 on aarch64-linux</li>
<li><a
href="900859c11a"><code>900859c</code></a>
Add back Nix 2.3</li>
<li><a
href="73e45e62a2"><code>73e45e6</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/58">#58</a>
from deemp/master</li>
<li>Additional commits viewable in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v29...v30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=29&new-version=30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 14:48:43 +01:00
dependabot[bot]
c5f7101432 chore: bump nixbuild/nix-quick-install-action from 29 to 30 (#609)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 29 to 30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v30</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.18.8, 2.19.6, 2.20.8, 2.21.4, 2.23.3</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.9 -&gt; 2.24.12
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.25.5, 2.26.1</p>
</li>
<li>
<p>Bump default Nix version: 2.24.9 -&gt; 2.24.12</p>
</li>
<li>
<p>Add support for <code>ubuntu-24.04-arm</code> (aarch64-linux)
runners.</p>
</li>
<li>
<p>Enable support for KVM in builds. Can be turned off with the new
<code>enable_kvm</code>
configuration option.</p>
</li>
</ul>
<h2>Supported Nix Versions on x86_64-linux runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on aarch64-linux runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
</ul>
<h2>Supported Nix Versions on x86_64-darwin runners</h2>
<ul>
<li>2.26.1</li>
<li>2.25.5</li>
<li>2.24.12</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v30</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove Nix versions: 2.18.8, 2.19.6, 2.20.8, 2.21.4, 2.23.3</p>
</li>
<li>
<p>Bump minor Nix versions: 2.24.9 -&gt; 2.24.12
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.25.5, 2.26.1</p>
</li>
<li>
<p>Bump default Nix version: 2.24.9 -&gt; 2.24.12</p>
</li>
<li>
<p>Add support for <code>ubuntu-24.04-arm</code> (aarch64-linux)
runners.</p>
</li>
<li>
<p>Enable support for KVM in builds. Can be turned off with the new
<code>enable_kvm</code>
configuration option.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5bb6a3b3ab"><code>5bb6a3b</code></a>
Release v30</li>
<li><a
href="607b4cf724"><code>607b4cf</code></a>
Remove outdated documentation (fixes <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/57">#57</a>)</li>
<li><a
href="5f5c23a20a"><code>5f5c23a</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/52">#52</a>
from azuwis/macos-volume</li>
<li><a
href="9f331f3772"><code>9f331f3</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/59">#59</a>
from nixbuild/readd_nix_2_3</li>
<li><a
href="904096fd8f"><code>904096f</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/56">#56</a>
from Smona/enable-kvm-on-linux</li>
<li><a
href="acdadbc3a6"><code>acdadbc</code></a>
Nix 2.3 doesn't work on aarch64-linux for some reason</li>
<li><a
href="0006832f24"><code>0006832</code></a>
ci: Fix syntax</li>
<li><a
href="450f0c1fe7"><code>450f0c1</code></a>
ci: Exclude Nix 2.3 on aarch64-linux</li>
<li><a
href="900859c11a"><code>900859c</code></a>
Add back Nix 2.3</li>
<li><a
href="73e45e62a2"><code>73e45e6</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/58">#58</a>
from deemp/master</li>
<li>Additional commits viewable in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v29...v30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=29&new-version=30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-28 14:47:41 +01:00
Jason Overmier
818654f8ef feat: Reduce AVIF Transform CPU Load by Lowering Effort Level (#233)
## Problem
The default AVIF encoding effort level was set to 5, which resulted in
high CPU usage during image transformations. This could make the storage
service resource-intensive and less suitable for lightweight or
small-server deployments.

## Solution
Set the AVIF effort level to 0 (fastest) instead of the default 5. This
change significantly reduces CPU load during image transformation,
making the storage service more efficient and lightweight.

## Notes
Lower effort levels trade off some compression efficiency for reduced
CPU usage.
This adjustment helps optimize performance on small-scale servers while
still maintaining acceptable image quality.
2025-02-28 12:04:16 +01:00
David BM
f4167e328c fix (dashboard): split postgres version if using a beta like 17.2-0.0.0-beta1 (#3211)
### **User description**
Fixes #3175


___

### **PR Type**
Bug fix, Enhancement


___

### **Description**
- Fix Postgres version splitting for beta versions

- Improve major version validation in settings

- Add utility function for version splitting

- Implement tests for version splitting function


___



### **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>DatabaseServiceVersionSettings.tsx</strong><dd><code>Update
version handling in DatabaseServiceVersionSettings</code></dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/settings/components/DatabaseServiceVersionSettings/DatabaseServiceVersionSettings.tsx

<li>Import new <code>splitPostgresMajorMinorVersions</code> utility<br>
<li> Update major version validation to check for positive number<br>
<li> Use new utility function to split Postgres versions


</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Add export for new version
splitting utility</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/settings/utils/splitPostgresMajorMinorVersions/index.ts

- Export `splitPostgresMajorMinorVersions` function


</details>


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

</tr>

<tr>
  <td>
    <details>

<summary><strong>splitPostgresMajorMinorVersions.ts</strong><dd><code>Implement
Postgres version splitting utility</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/settings/utils/splitPostgresMajorMinorVersions/splitPostgresMajorMinorVersions.ts

<li>Implement <code>splitPostgresMajorMinorVersions</code> function<br>
<li> Split version string into major and minor parts


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3211/files#diff-2c41895bcbcaa13eb34bfb8321640dcdc2757dd920e40e46f2dcd0670c3e56a2">+11/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>

<summary><strong>splitPostgresMajorMinorVersions.test.ts</strong><dd><code>Add
tests for Postgres version splitting utility</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>


dashboard/src/features/orgs/projects/database/settings/utils/splitPostgresMajorMinorVersions/splitPostgresMajorMinorVersions.test.ts

<li>Add tests for <code>splitPostgresMajorMinorVersions</code>
function<br> <li> Test regular and beta Postgres versions


</details>


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

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>twenty-pets-brake.md</strong><dd><code>Add changeset
for version bump and fix description</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

.changeset/twenty-pets-brake.md

<li>Add changeset for minor version bump<br> <li> Describe fix for
Postgres beta version splitting


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3211/files#diff-da03f8241486698793641c7a3ec58e11cdbb185b5920bd6bd7b281cd8513f5c3">+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>

---------

Co-authored-by: robertkasza <167509084+robertkasza@users.noreply.github.com>
2025-02-27 00:27:19 +01:00
Nuno Pato
56ebb1f719 fix: dashboard: run analytics only in prod (#3220)
### **User description**
- only run analytics on production


___

### **PR Type**
Enhancement


___

### **Description**
- Run analytics only in production environment

- Add `isDevOrStaging` check for analytics rendering

- Update `Analytics` component conditional rendering

- Include changeset for version bump


___



### **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>_app.tsx</strong><dd><code>Conditionally Render
Analytics Component</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

dashboard/src/pages/_app.tsx

<li>Import <code>isDevOrStaging</code> helper function<br> <li> Modify
<code>Analytics</code> component rendering condition<br> <li> Add check
to prevent analytics in dev/staging


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3220/files#diff-944e6c6d89cc2a23522cb7246ab566c540c8a06660c9c5385363493d3fb613af">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Documentation</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>short-games-sniff.md</strong><dd><code>Add Changeset
for Version Bump</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;
</dd></summary>
<hr>

.changeset/short-games-sniff.md

<li>Add new changeset file<br> <li> Specify minor version bump for
'@nhost/dashboard'<br> <li> Include fix description for analytics


</details>


  </td>
<td><a
href="https://github.com/nhost/nhost/pull/3220/files#diff-9a2390872c90159af419f7698ad33ffa24a4c95a5b920ab6703f6318c4ad47e7">+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-02-25 22:13:57 -01:00
David Barroso
6790c7d08f feat: added support for avif and "format" query arg to transform output format (#232)
Fixes https://github.com/nhost/nhost/issues/2508 and
https://github.com/nhost/nhost/issues/3212
2025-02-21 07:16:03 +01:00
David Barroso
f93014dbfe fix: apple may return email_verified as a string or boolean (#608) 2025-02-19 09:06:30 +01:00
David Barroso
5f1a23960a chore: update dependencies (#231) 2025-02-03 16:14:47 +01:00
David Barroso
1495588cd7 chore: update dependencies (#607)
### **PR Type**
Enhancement


___

### **Description**
- Update Go version and toolchain

- Upgrade multiple dependencies to latest versions

- Update PostgreSQL client version in flake.nix

- Add new YAML-related 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 PostgreSQL client
version</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; </dd></summary>
<hr>

flake.nix

- Update PostgreSQL client from version 16.4 to 17.2


</details>


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

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>go.mod</strong><dd><code>Update Go version and
dependencies</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>

go.mod

<li>Update Go version to 1.23.0<br> <li> Upgrade multiple dependencies
to latest versions<br> <li> Add new dependencies for YAML handling


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/607/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+30/-30</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>go.sum</strong><dd><code>Update dependency
checksums</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; </dd></summary>
<hr>

go.sum

<li>Update checksums for upgraded dependencies<br> <li> Remove old
dependency versions<br> <li> Add checksums for new dependencies


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/607/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+62/-66</a>&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-02-03 16:09:46 +01:00
dependabot[bot]
7d06c4ed2a chore: bump DeterminateSystems/magic-nix-cache-action from 8 to 9 (#605)
Bumps
[DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action)
from 8 to 9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/determinatesystems/magic-nix-cache-action/releases">DeterminateSystems/magic-nix-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v9</h2>
<h2>What's Changed</h2>
<ul>
<li>ci workflow: don't check initial substituter list by <a
href="https://github.com/colemickens"><code>@​colemickens</code></a> in
<a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/90">DeterminateSystems/magic-nix-cache-action#90</a></li>
<li>Matrix by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/96">DeterminateSystems/magic-nix-cache-action#96</a></li>
<li>Update <code>detsys-ts</code>: Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/69">#69</a>
from DeterminateSystems/update-deps by <a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/99">DeterminateSystems/magic-nix-cache-action#99</a></li>
<li>Fixup diagnostic URL handling by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/100">DeterminateSystems/magic-nix-cache-action#100</a></li>
<li>Diagnostics by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/101">DeterminateSystems/magic-nix-cache-action#101</a></li>
<li>Warn on mnc usage by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/102">DeterminateSystems/magic-nix-cache-action#102</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v8...v9">https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v8...v9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6221693898"><code>6221693</code></a>
Warn on mnc usage (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/102">#102</a>)</li>
<li><a
href="f7eb5b510a"><code>f7eb5b5</code></a>
Diagnostics (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/101">#101</a>)</li>
<li><a
href="fe89a484fe"><code>fe89a48</code></a>
Fixup diagnostic URL handling (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/100">#100</a>)</li>
<li><a
href="13dabe8ccc"><code>13dabe8</code></a>
Update <code>detsys-ts</code> for: `Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/69">#69</a>
from DeterminateSystems/updat...</li>
<li><a
href="9ab3ce70d6"><code>9ab3ce7</code></a>
Matrix (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/96">#96</a>)</li>
<li><a
href="a76a83091c"><code>a76a830</code></a>
ci workflow: don't check initial substituter list (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/90">#90</a>)</li>
<li>See full diff in <a
href="https://github.com/determinatesystems/magic-nix-cache-action/compare/v8...v9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DeterminateSystems/magic-nix-cache-action&package-manager=github_actions&previous-version=8&new-version=9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-22 10:00:28 +01:00
dependabot[bot]
e4da899d59 chore: bump DeterminateSystems/magic-nix-cache-action from 8 to 9 (#230)
Bumps
[DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action)
from 8 to 9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/determinatesystems/magic-nix-cache-action/releases">DeterminateSystems/magic-nix-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v9</h2>
<h2>What's Changed</h2>
<ul>
<li>ci workflow: don't check initial substituter list by <a
href="https://github.com/colemickens"><code>@​colemickens</code></a> in
<a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/90">DeterminateSystems/magic-nix-cache-action#90</a></li>
<li>Matrix by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/96">DeterminateSystems/magic-nix-cache-action#96</a></li>
<li>Update <code>detsys-ts</code>: Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/69">#69</a>
from DeterminateSystems/update-deps by <a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/99">DeterminateSystems/magic-nix-cache-action#99</a></li>
<li>Fixup diagnostic URL handling by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/100">DeterminateSystems/magic-nix-cache-action#100</a></li>
<li>Diagnostics by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/101">DeterminateSystems/magic-nix-cache-action#101</a></li>
<li>Warn on mnc usage by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/102">DeterminateSystems/magic-nix-cache-action#102</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v8...v9">https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v8...v9</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6221693898"><code>6221693</code></a>
Warn on mnc usage (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/102">#102</a>)</li>
<li><a
href="f7eb5b510a"><code>f7eb5b5</code></a>
Diagnostics (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/101">#101</a>)</li>
<li><a
href="fe89a484fe"><code>fe89a48</code></a>
Fixup diagnostic URL handling (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/100">#100</a>)</li>
<li><a
href="13dabe8ccc"><code>13dabe8</code></a>
Update <code>detsys-ts</code> for: `Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/69">#69</a>
from DeterminateSystems/updat...</li>
<li><a
href="9ab3ce70d6"><code>9ab3ce7</code></a>
Matrix (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/96">#96</a>)</li>
<li><a
href="a76a83091c"><code>a76a830</code></a>
ci workflow: don't check initial substituter list (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/90">#90</a>)</li>
<li>See full diff in <a
href="https://github.com/determinatesystems/magic-nix-cache-action/compare/v8...v9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DeterminateSystems/magic-nix-cache-action&package-manager=github_actions&previous-version=8&new-version=9)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-22 10:00:05 +01:00
David Barroso
595b024b54 chore: update deps due to CVE (#604)
### **PR Type**
Enhancement, Other


___

### **Description**
- Update `github.com/MicahParks/jwkset` to v0.7.0

- Upgrade `golang.org/x/time` to v0.9.0

- Address potential security vulnerabilities (CVE)

- Update dependencies in go.mod and go.sum


___



### **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>go.mod</strong><dd><code>Update jwkset and time package
versions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go.mod

<li>Upgrade <code>github.com/MicahParks/jwkset</code> from v0.5.19 to
v0.7.0<br> <li> Update <code>golang.org/x/time</code> from v0.5.0 to
v0.9.0


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/604/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>go.sum</strong><dd><code>Update dependency checksums in
go.sum</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go.sum

<li>Add new versions of <code>github.com/MicahParks/jwkset</code>
(v0.6.0, v0.7.0)<br> <li> Update <code>golang.org/x/time</code> to
v0.9.0<br> <li> Remove old versions and add new checksums


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/604/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+6/-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-10 13:37:33 +01:00
David Barroso
82fb906577 feat: webauthn: support discoverable credentials (#601)
### **PR Type**
Enhancement


___

### **Description**
- Implement discoverable credentials for WebAuthn

- Remove userHandle from signin request

- Update WebAuthn login flow

- Add discoverable login support


___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>7
files</summary><table>
<tr>
<td><strong>server.gen.go</strong><dd><code>Update generated API server
code</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; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+66/-67</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>types.gen.go</strong><dd><code>Remove userHandle from
SignInWebauthnRequest</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+0/-122</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>post_signin_webauthn.go</strong><dd><code>Implement
discoverable login for WebAuthn</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-95599fe7466c53c386548cef611f66ac3a5b09f142c34e82b2705716c1fcd689">+20/-13</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>post_signin_webauthn_verify.go</strong><dd><code>Add support
for discoverable credentials verification</code>&nbsp; &nbsp; &nbsp;
&nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-7936c1b9d7038ab183190ece066673628235bdc9883e7f42d3ec8286d8cace7e">+69/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
<td><strong>post_signup_webauthn.go</strong><dd><code>Add discoverable
flag to WebauthnUser</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-0c2778528d4500955dfedead12e1a96719d7a52834546cc3151ad53662857efa">+5/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
<td><strong>webauthn.go</strong><dd><code>Implement discoverable login
functionality</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-f4086b19fc5b667766c6580e880ef98b874b4068db0259376cf0cbc179718efc">+66/-12</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>openapi.yaml</strong><dd><code>Remove userHandle from
SignInWebauthnRequest</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>3
files</summary><table>
<tr>
<td><strong>post_signin_webauthn_test.go</strong><dd><code>Update tests
for discoverable WebAuthn login</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-71a06b6b10627842b843348d8879303850ca5badbf947b37fd3df2e667c2bc88">+34/-146</a></td>

</tr>

<tr>
<td><strong>post_signin_webauthn_verify_test.go</strong><dd><code>Add
test for discoverable WebAuthn login</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-1c449231790f6e56e26d47fecb200b1f2b3585ea9f80ad19ab8f905b01094a46">+145/-2</a>&nbsp;
</td>

</tr>

<tr>
<td><strong>post_signup_webauthn_test.go</strong><dd><code>Update tests
with discoverable flag</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-d90cf5c246e6e577eeafbd15f2ea2c408e2f986f189e856d4a8f232646973708">+15/-12</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
<td><strong>index.html</strong><dd><code>Add WebAuthn signin and signup
demo</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/601/files#diff-0eb547304658805aad788d320f10bf1f292797b5e6d745a3bf617584da017051">+194/-0</a>&nbsp;
</td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2025-01-10 12:42:33 +01:00
dependabot[bot]
26d264e506 chore: bump Codium-ai/pr-agent from 0.25 to 0.26 (#600)
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.25 to 0.26.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.26</h2>
<h2><a
href="https://hub.docker.com/repository/docker/codiumai/pr-agent/tags">Docker
tags</a></h2>
<p>codiumai/pr-agent:0.26
codiumai/pr-agent:0.26-github_app
codiumai/pr-agent:0.26-bitbucket-app
codiumai/pr-agent:0.26-gitlab_webhook
codiumai/pr-agent:0.26-github_action
codiumai/pr-agent:0.26-azure_devops_webhook</p>
<h2>What's Changed</h2>
<ul>
<li>Add disable_auto_feedback configuration option to control automatic
feedback by <a href="https://github.com/mrT23"><code>@​mrT23</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1379">Codium-ai/pr-agent#1379</a></li>
<li>Fix doc for Github Actions by <a
href="https://github.com/glebzhidkov"><code>@​glebzhidkov</code></a> in
<a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1390">Codium-ai/pr-agent#1390</a></li>
<li>Introduce to weak model by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1387">Codium-ai/pr-agent#1387</a></li>
<li>docs: remove model_weak configuration and simplify model selection
by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1392">Codium-ai/pr-agent#1392</a></li>
<li>Similar Code: Add PR Body License Documentation by <a
href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1396">Codium-ai/pr-agent#1396</a></li>
<li>Add support for <code>gemini/gemini-2.0-flash-exp</code> model
by <a href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1397">Codium-ai/pr-agent#1397</a></li>
<li>Add --version command and version metadata by <a
href="https://github.com/MarkRx"><code>@​MarkRx</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1384">Codium-ai/pr-agent#1384</a></li>
<li>docs: simplify default tool configurations and update documentation
by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1401">Codium-ai/pr-agent#1401</a></li>
<li>feat: enhance code review output with collapsible code snippets by
<a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1403">Codium-ai/pr-agent#1403</a></li>
<li>fix: only publish empty code suggestions when configured by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1407">Codium-ai/pr-agent#1407</a></li>
<li>Add support for OpenAI <code>o1</code> model and snapshot version
<code>o1-2024-12-17</code>
by <a href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1402">Codium-ai/pr-agent#1402</a></li>
<li>Tr/update changelog fix by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1410">Codium-ai/pr-agent#1410</a></li>
<li>feat: add dedent option to code snippet formatting by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1412">Codium-ai/pr-agent#1412</a></li>
<li>Document an example on how to configure PR Agent using environment
variables by <a
href="https://github.com/addianto"><code>@​addianto</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1413">Codium-ai/pr-agent#1413</a></li>
<li>refactor: remove legacy code suggestions feature from review tool by
<a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1416">Codium-ai/pr-agent#1416</a></li>
<li>fix: improve line extraction from files with missing content by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1420">Codium-ai/pr-agent#1420</a></li>
<li>fix: restrict sensitive configuration parameters in CLI arguments by
<a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1425">Codium-ai/pr-agent#1425</a></li>
<li>fix: sanitize Ask tool answers to prevent markdown formatting issues
by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1426">Codium-ai/pr-agent#1426</a></li>
<li>Update Groq models and tokens by <a
href="https://github.com/dceoy"><code>@​dceoy</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1421">Codium-ai/pr-agent#1421</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/glebzhidkov"><code>@​glebzhidkov</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1390">Codium-ai/pr-agent#1390</a></li>
<li><a href="https://github.com/ofir-frd"><code>@​ofir-frd</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1396">Codium-ai/pr-agent#1396</a></li>
<li><a href="https://github.com/addianto"><code>@​addianto</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1413">Codium-ai/pr-agent#1413</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Codium-ai/pr-agent/compare/v0.25...v0.26">https://github.com/Codium-ai/pr-agent/compare/v0.25...v0.26</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8218fa6e13"><code>8218fa6</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1421">#1421</a>
from dceoy/main</li>
<li><a
href="8463c4f549"><code>8463c4f</code></a>
fix: sanitize Ask tool answers to prevent markdown formatting issues
with lea...</li>
<li><a
href="014b1f20c5"><code>014b1f2</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1426">#1426</a>
from Codium-ai/tr/ask_fix</li>
<li><a
href="2f73ab6eab"><code>2f73ab6</code></a>
fix: sanitize Ask tool answers to prevent markdown formatting issues
with lea...</li>
<li><a
href="16dc29a23a"><code>16dc29a</code></a>
fix: sanitize Ask tool answers to prevent markdown formatting
issues</li>
<li><a
href="bd9522057f"><code>bd95220</code></a>
fix: add OpenAI configuration parameters to restricted CLI
arguments</li>
<li><a
href="b3d4af6cbf"><code>b3d4af6</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1425">#1425</a>
from Codium-ai/tr/limit_online_commenting</li>
<li><a
href="5df9698bae"><code>5df9698</code></a>
fix: restrict sensitive configuration parameters in CLI arguments</li>
<li><a
href="e89b65ed38"><code>e89b65e</code></a>
Increase the max token of groq/llama-3.3-70b-versatile</li>
<li><a
href="6a145af159"><code>6a145af</code></a>
fix: make semantic file types extension optional in PR description</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.25...v0.26">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.25&new-version=0.26)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 14:37:24 +01:00
Sumanth Chinthagunta
457de9a89a fix: make NewSession behave same way like UpdateSession method (#594)
Before submitting this PR:

Noticed session creation behave is different when `UpdateSession` method
is called vs `NewSession` method is called.
keeping the behavior same for both methods, producing similar
`allowedRoles` in session.

### Checklist

- [x] No breaking changes
- [x] Tests pass
- [x] New features have new tests
- [x] Documentation is updated

### Breaking changes

Avoid breaking changes and regressions. If you feel it is unavoidable,
make it explicit in your PR comment so we can review it and see how to
handle it.

### Tests

- please make sure your changes pass the current tests (Use the `make
test` or the `make watch` command).
- if you are introducing a new feature, please write as much tests as
possible.

### Documentation

Please make sure the documentation is updated accordingly, in
particular:

-
[Workflows](https://github.com/nhost/hasura-auth/tree/main/docs/workflows).
Workflows are [Mermaid sequence
diagrams](https://mermaid-js.github.io/mermaid/#/sequenceDiagram)
-
[Schema](https://github.com/nhost/hasura-auth/blob/main/docs/schema.md).
The schema in a [Mermaid ER
diagram](https://mermaid-js.github.io/mermaid/#/entityRelationshipDiagram)
- [Environment
variables](https://github.com/nhost/hasura-auth/blob/main/docs/environment-variables.md).
Please adjust the
[.env.example](https://github.com/nhost/hasura-auth/blob/main/.env.example)
file accordingly
- OpenApi specifications. We are using inline [JSDoc
annotations](https://www.npmjs.com/package/express-jsdoc-swagger)

---------

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-12-09 20:02:28 +01:00
David Barroso
b566ae9676 chore: update path-to-regexp js deps due to vuln (#596)
### **PR Type**
enhancement, dependencies


___

### **Description**
- Updated the `path-to-regexp` dependency in `package.json` to ensure a
minimum version of 0.12.0.
- Upgraded `path-to-regexp` in `pnpm-lock.yaml` from version 0.1.10 to
8.2.0, ensuring compatibility with Node.js version 16 or higher.
- These changes address potential vulnerabilities by updating to a more
secure version of the `path-to-regexp` package.



___



### **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>package.json</strong><dd><code>Update dependency
constraints for `path-to-regexp`</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

package.json

<li>Added a new dependency version constraint for
<code>path-to-regexp</code>.<br> <li> Updated the <code>overrides</code>
section to include <code>path-to-regexp</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/596/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>pnpm-lock.yaml</strong><dd><code>Upgrade
`path-to-regexp` and update engine requirements</code>&nbsp; &nbsp;
</dd></summary>
<hr>

pnpm-lock.yaml

<li>Updated <code>path-to-regexp</code> version from 0.1.10 to
8.2.0.<br> <li> Added engine requirement for <code>path-to-regexp</code>
to Node >=16.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/596/files#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bb">+6/-4</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
2024-12-09 16:28:43 +01:00
David Barroso
bfb7cab2ca chore: remove unnecessary/unsafe permissions to gen_ai_review (#595)
### **PR Type**
enhancement


___

### **Description**
- Removed the 'contents: write' permission from the GitHub Actions
workflow file to enhance security by limiting permissions to only what
is necessary.



___



### **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>gen_ai_review.yaml</strong><dd><code>Remove unnecessary
permissions from GitHub workflow</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

.github/workflows/gen_ai_review.yaml

<li>Removed unnecessary 'contents: write' permission from the workflow
<br>file.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/595/files#diff-d1e4c772e0acb5ce4891df2dd94ba58ffaf6393e8f75493ec7e10cbce1c4992c">+0/-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
2024-12-09 14:14:46 +01:00
dependabot[bot]
9cd0aa0e81 chore: bump Codium-ai/pr-agent from 0.24 to 0.25 (#592)
Bumps [Codium-ai/pr-agent](https://github.com/codium-ai/pr-agent) from
0.24 to 0.25.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/codium-ai/pr-agent/releases">Codium-ai/pr-agent's
releases</a>.</em></p>
<blockquote>
<h2>v0.25</h2>
<h2><a
href="https://hub.docker.com/repository/docker/codiumai/pr-agent/tags">Docker
tags</a></h2>
<p>codiumai/pr-agent:0.25
codiumai/pr-agent:0.25-github_app
codiumai/pr-agent:0.25-bitbucket-app
codiumai/pr-agent:0.25-gitlab_webhook
codiumai/pr-agent:0.25-github_action
codiumai/pr-agent:0.25-azure_devops_webhook</p>
<h2>What's Changed</h2>
<ul>
<li>Add 1C Enterprise language by <a
href="https://github.com/proDOOMman"><code>@​proDOOMman</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1197">Codium-ai/pr-agent#1197</a></li>
<li>feat: gitlab skip source, target and labels by <a
href="https://github.com/paolomainardi"><code>@​paolomainardi</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1192">Codium-ai/pr-agent#1192</a></li>
<li>fix: Typo in README (<code>Chrom</code> -&gt; <code>Chrome</code>)
by <a href="https://github.com/ScArLeXiA"><code>@​ScArLeXiA</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1205">Codium-ai/pr-agent#1205</a></li>
<li>Tr/dynamic context by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1224">Codium-ai/pr-agent#1224</a></li>
<li>Add new o1-mini and o1-preview models by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1226">Codium-ai/pr-agent#1226</a></li>
<li>Set azure devops default status to ByDesign by <a
href="https://github.com/eddielu"><code>@​eddielu</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1228">Codium-ai/pr-agent#1228</a></li>
<li>Update PR Action Handling Logic in GitHub Action Runner by <a
href="https://github.com/matanbaruch"><code>@​matanbaruch</code></a> in
<a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1231">Codium-ai/pr-agent#1231</a></li>
<li>func get_line_link compatible with old gitlab versions by <a
href="https://github.com/yzongyue"><code>@​yzongyue</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1232">Codium-ai/pr-agent#1232</a></li>
<li>Add configuration for auto actions in GitHub Action runner by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1253">Codium-ai/pr-agent#1253</a></li>
<li>Add intro and chat text options for PR code suggestions in
configuration by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1254">Codium-ai/pr-agent#1254</a></li>
<li>feat: add dual publishing mode for PR code suggestions by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1263">Codium-ai/pr-agent#1263</a></li>
<li>feat: enhance PR processing logic across GitLab, GitHub, and
Bitbucket by <a href="https://github.com/mrT23"><code>@​mrT23</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1267">Codium-ai/pr-agent#1267</a></li>
<li>bug-fix_azuredevops-new-file by <a
href="https://github.com/CoryBall"><code>@​CoryBall</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1274">Codium-ai/pr-agent#1274</a></li>
<li>Update footer links and branding from CodiumAI to Qodo by <a
href="https://github.com/almog-lv"><code>@​almog-lv</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1280">Codium-ai/pr-agent#1280</a></li>
<li>support more types of github ticket url / references by <a
href="https://github.com/hussam789"><code>@​hussam789</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1290">Codium-ai/pr-agent#1290</a></li>
<li>disable publishing labels by default by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1299">Codium-ai/pr-agent#1299</a></li>
<li>fix typos in documents by <a
href="https://github.com/dheerajsir"><code>@​dheerajsir</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1305">Codium-ai/pr-agent#1305</a></li>
<li>Add support for new Claude models and update dependencies
by <a href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1302">Codium-ai/pr-agent#1302</a></li>
<li>Gitlab docs improved; gitlab webhook secret config standardization
by <a href="https://github.com/s1moe2"><code>@​s1moe2</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1307">Codium-ai/pr-agent#1307</a></li>
<li>Support Google AI Studio by <a
href="https://github.com/yu-iskw"><code>@​yu-iskw</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1313">Codium-ai/pr-agent#1313</a></li>
<li>update bitbucket-pipelines.yml filename in installation by <a
href="https://github.com/nomi3"><code>@​nomi3</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1325">Codium-ai/pr-agent#1325</a></li>
<li>Merge branch 'main' of <a
href="https://github.com/ryanzll/pr-agent">https://github.com/ryanzll/pr-agent</a>
by <a href="https://github.com/ryanzll"><code>@​ryanzll</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1332">Codium-ai/pr-agent#1332</a></li>
<li>Add configuration option to control publish of no code suggestions
message by <a
href="https://github.com/miyagi-do"><code>@​miyagi-do</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1331">Codium-ai/pr-agent#1331</a></li>
<li>Add Claude 3.5 Haiku Model Support and Update Dependencies by <a
href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1345">Codium-ai/pr-agent#1345</a></li>
<li>Remove unused deployment_id variable. by <a
href="https://github.com/NxPKG"><code>@​NxPKG</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1350">Codium-ai/pr-agent#1350</a></li>
<li>Introduce pre-commit hooks and GitHub Actions by <a
href="https://github.com/yu-iskw"><code>@​yu-iskw</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1316">Codium-ai/pr-agent#1316</a></li>
<li>docs: add note about $CI_SERVER_FQDN variable in GitLab CI/CD
pipeline by <a
href="https://github.com/samuele-ruffino96"><code>@​samuele-ruffino96</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1362">Codium-ai/pr-agent#1362</a></li>
<li>committable comments by <a
href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1369">Codium-ai/pr-agent#1369</a></li>
<li>Improve logging and error handling in Azure DevOps provider for code
… by <a href="https://github.com/mrT23"><code>@​mrT23</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1373">Codium-ai/pr-agent#1373</a></li>
<li>Check git_provider and reference_link before using them in utils.py
by <a href="https://github.com/ryanzll"><code>@​ryanzll</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1364">Codium-ai/pr-agent#1364</a></li>
<li>Add Support for GPT-4o November 2024 Model and Update Configurations
by <a href="https://github.com/KennyDizi"><code>@​KennyDizi</code></a>
in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1374">Codium-ai/pr-agent#1374</a></li>
<li>Add publish_output_progress config support to AzureDevOps, BitBucket
and Gitlab providers by <a
href="https://github.com/pdecat"><code>@​pdecat</code></a> in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1376">Codium-ai/pr-agent#1376</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/proDOOMman"><code>@​proDOOMman</code></a> made
their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1197">Codium-ai/pr-agent#1197</a></li>
<li><a href="https://github.com/ScArLeXiA"><code>@​ScArLeXiA</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1205">Codium-ai/pr-agent#1205</a></li>
<li><a href="https://github.com/eddielu"><code>@​eddielu</code></a> made
their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1228">Codium-ai/pr-agent#1228</a></li>
<li><a
href="https://github.com/matanbaruch"><code>@​matanbaruch</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1231">Codium-ai/pr-agent#1231</a></li>
<li><a href="https://github.com/yzongyue"><code>@​yzongyue</code></a>
made their first contribution in <a
href="https://redirect.github.com/Codium-ai/pr-agent/pull/1232">Codium-ai/pr-agent#1232</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="91bf3c0749"><code>91bf3c0</code></a>
openai version</li>
<li><a
href="159155785e"><code>1591557</code></a>
Update README.md</li>
<li><a
href="eabc296246"><code>eabc296</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1376">#1376</a>
from pdecat/enhancement/generalize_publish_output_pr...</li>
<li><a
href="b44030114e"><code>b440301</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1374">#1374</a>
from KennyDizi/main</li>
<li><a
href="1d6f87be3b"><code>1d6f87b</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1375">#1375</a>
from Codium-ai/update-google-tag-manager</li>
<li><a
href="a7c6fa7bd2"><code>a7c6fa7</code></a>
Merge pull request <a
href="https://redirect.github.com/codium-ai/pr-agent/issues/1364">#1364</a>
from ryanzll/main</li>
<li><a
href="a825aec5f3"><code>a825aec</code></a>
Add publish_output_progress config support to AzureDevOps, BitBucket and
Gitl...</li>
<li><a
href="4df097c228"><code>4df097c</code></a>
Update Google Tag Manager ID in custom analytics integration</li>
<li><a
href="6871e1b27a"><code>6871e1b</code></a>
docs: add section on customizing best practices label in improve.md</li>
<li><a
href="4afe05761d"><code>4afe057</code></a>
docs: add section on best practices for multiple languages in
improve.md</li>
<li>Additional commits viewable in <a
href="https://github.com/codium-ai/pr-agent/compare/v0.24...v0.25">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Codium-ai/pr-agent&package-manager=github_actions&previous-version=0.24&new-version=0.25)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 09:05:37 +01:00
David Barroso
3e2ffd373e fix: signin/idtoken: insert user provider if user provider not found (#590)
### **PR Type**
Bug fix, Tests


___

### **Description**
- Added a new boolean return value in `postSigninIdtokenCheckUserExists`
to indicate if the provider was found.
- Updated `PostSigninIdtoken` to handle the new return value and insert
the user provider if not found.
- Enhanced test cases to mock and verify the insertion of user provider
during sign-in.



___



### **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>post_signin_idtoken.go</strong><dd><code>Handle missing
user provider during sign-in</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_idtoken.go

<li>Added a new boolean return value to indicate if the provider was
<br>found.<br> <li> Updated the
<code>postSigninIdtokenCheckUserExists</code> function to handle the
<br>new return value.<br> <li> Modified the
<code>PostSigninIdtoken</code> function to use the new return value.<br>
<li> Inserted user provider if not found during sign-in.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/590/files#diff-9fd0de4be8562a869563cff72a27f579c9c45d66d9f6d4754a9dd20498514b53">+26/-9</a>&nbsp;
&nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Tests</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>post_signin_idtoken_test.go</strong><dd><code>Add tests
for inserting user provider during sign-in</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signin_idtoken_test.go

<li>Added test cases to mock <code>InsertUserProvider</code>
function.<br> <li> Verified the insertion of user provider when not
found.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/590/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+20/-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
2024-11-28 12:03:51 +01:00
David Barroso
f1f4ae2cd3 fix: always set ticket expires at as it can't be null (#588)
Fixes https://github.com/nhost/nhost/issues/3035

### **PR Type**
Bug fix


___

### **Description**
- Updated `TicketExpiresAt` field in multiple test cases to use
`sql.TimestampTz(time.Now())` ensuring it is always set to a non-null
value.
- Modified `ticketExpiresAt` initialization in
`SignupUserWithouthSession` method to ensure it is always set to a
non-null value.



___



### **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>post_signin_idtoken_test.go</strong><dd><code>Set
non-null `TicketExpiresAt` in test cases</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_idtoken_test.go

<li>Updated <code>TicketExpiresAt</code> field to use
<code>sql.TimestampTz(time.Now())</code> <br>instead of
<code>pgtype.Timestamptz{}</code>.<br> <li> Ensured
<code>TicketExpiresAt</code> is always set to a non-null value in test
<br>cases.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/588/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows.go</strong><dd><code>Ensure `ticketExpiresAt`
is non-null during user signup</code>&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/workflows.go

<li>Changed <code>ticketExpiresAt</code> initialization to use
<br><code>sql.TimestampTz(time.Now())</code>.<br> <li> Ensured
<code>ticketExpiresAt</code> is always set to a non-null value.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/588/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+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
2024-11-26 15:51:34 +01:00
David Barroso
664df61518 feat: migrate signin/webauthn to go and add possibility to login with userHandle (#587)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Added new WebAuthn sign-in and verification endpoints.
- Defined new request and response types for WebAuthn.
- Implemented handlers for WebAuthn sign-in and verification.
- Added tests for new WebAuthn handlers.
- Updated OpenAPI documentation to include new WebAuthn endpoints.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Add WebAuthn sign-in
and verification endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/server.gen.go

<li>Added new endpoints for WebAuthn sign-in and verification.<br> <li>
Implemented middleware for new WebAuthn endpoints.<br> <li> Registered
new WebAuthn routes in the router.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+207/-64</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Define WebAuthn request
and response types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/api/types.gen.go

<li>Defined new request and response types for WebAuthn sign-in and
<br>verification.<br> <li> Added JSON handling for new WebAuthn
types.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+228/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>controller.go</strong><dd><code>Extend DBClient
interface with GetSecurityKeys method</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/controller.go

- Added `GetSecurityKeys` method to `DBClient` interface.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+2/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_webauthn.go</strong><dd><code>Implement
PostSigninWebauthn handler</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>

go/controller/post_signin_webauthn.go

<li>Implemented <code>PostSigninWebauthn</code> handler.<br> <li> Added
helper function to convert security keys to WebAuthn
<br>credentials.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-95599fe7466c53c386548cef611f66ac3a5b09f142c34e82b2705716c1fcd689">+89/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signin_webauthn_verify.go</strong><dd><code>Implement
PostSigninWebauthnVerify handler</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/controller/post_signin_webauthn_verify.go

- Implemented `PostSigninWebauthnVerify` handler.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-7936c1b9d7038ab183190ece066673628235bdc9883e7f42d3ec8286d8cace7e">+46/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signup_webauthn.go</strong><dd><code>Update
PostSignupWebauthn handler to include credentials</code>&nbsp;
</dd></summary>
<hr>

go/controller/post_signup_webauthn.go

<li>Updated <code>PostSignupWebauthn</code> handler to include
credentials in <br><code>WebauthnUser</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-0c2778528d4500955dfedead12e1a96719d7a52834546cc3151ad53662857efa">+4/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>webauthn.go</strong><dd><code>Implement BeginLogin and
FinishLogin for WebAuthn</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/webauthn.go

<li>Implemented <code>BeginLogin</code> and <code>FinishLogin</code>
methods for WebAuthn.<br> <li> Updated <code>WebauthnUser</code> to
include credentials.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-f4086b19fc5b667766c6580e880ef98b874b4068db0259376cf0cbc179718efc">+85/-4</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows.go</strong><dd><code>Add GetUserSecurityKeys
workflow method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/controller/workflows.go

- Added `GetUserSecurityKeys` workflow method.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+18/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>query.sql.go</strong><dd><code>Add GetSecurityKeys SQL
query and method</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/sql/query.sql.go

- Added `GetSecurityKeys` SQL query and method.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+34/-0</a>&nbsp;
&nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>errors.go</strong><dd><code>Add error handling for
WebAuthn endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/errors.go

<li>Added new error type <code>ErrSecurityKeyNotFound</code>.<br> <li>
Added error response visitors for new WebAuthn endpoints.<br>


</details>


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

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>4
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>controller.go</strong><dd><code>Add mock methods for
GetSecurityKeys</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>

go/controller/mock/controller.go

- Added mock methods for `GetSecurityKeys`.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-f1b1f168b0924b023c571d6274d53defef472a872f5fee4de1c4ae78959cc327">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_webauthn_test.go</strong><dd><code>Add
tests for PostSigninWebauthn handler</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signin_webauthn_test.go

- Added tests for `PostSigninWebauthn` handler.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-71a06b6b10627842b843348d8879303850ca5badbf947b37fd3df2e667c2bc88">+387/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signin_webauthn_verify_test.go</strong><dd><code>Add
tests for PostSigninWebauthnVerify handler</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signin_webauthn_verify_test.go

- Added tests for `PostSigninWebauthnVerify` handler.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-1c449231790f6e56e26d47fecb200b1f2b3585ea9f80ad19ab8f905b01094a46">+310/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signup_webauthn_test.go</strong><dd><code>Update
tests for PostSignupWebauthn handler</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signup_webauthn_test.go

<li>Updated tests for <code>PostSignupWebauthn</code> handler to include
credentials.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-d90cf5c246e6e577eeafbd15f2ea2c408e2f986f189e856d4a8f232646973708">+12/-9</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Add OpenAPI definitions
for WebAuthn endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

<li>Added OpenAPI definitions for WebAuthn sign-in and verification
<br>endpoints.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/587/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+94/-0</a>&nbsp;
&nbsp; </td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-25 15:05:23 +01:00
David Barroso
21de1e1e00 fix: make phoneNumber optional to match database (#586)
### **User description**
Fixes #542


___

### **PR Type**
Bug fix, Tests


___

### **Description**
- Made `phoneNumber` field optional in the `User` struct to match the
database schema.
- Updated the OpenAPI specification to reflect the change in the
`phoneNumber` field.
- Modified tests to accommodate the optional `phoneNumber` field.
- Added a utility function to convert `pgtype.Text` to a pointer string.
- Updated workflows to handle the optional `phoneNumber` field.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>4
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Update swagger
specification for phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/server.gen.go

<li>Updated the embedded swagger specification file to reflect changes
in <br>the <code>phoneNumber</code> field.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+33/-33</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows.go</strong><dd><code>Update workflows for
optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/workflows.go

- Updated workflows to handle optional `phoneNumber` field.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>data.go</strong><dd><code>Add utility function for
pgtype.Text to pointer string conversion</code></dd></summary>
<hr>

go/sql/data.go

- Added utility function to convert `pgtype.Text` to pointer string.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-ec4afb4c7d26c7385fbe7e0c1ad20494b9bf268e68150e48871a17205c33fb0e">+7/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Update OpenAPI spec to
make phoneNumber optional</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

<li>Removed <code>phoneNumber</code> from required fields in the OpenAPI
specification.<br> <br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Bug
fix</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Make phoneNumber field
optional in User struct</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/types.gen.go

<li>Changed <code>phoneNumber</code> field in <code>User</code> struct
to be a pointer and optional.<br> <br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>7
files</summary><table>
<tr>
  <td>
    <details>

<summary><strong>post_signin_email_password_test.go</strong><dd><code>Update
tests for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_email_password_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-20169cf1b0f6c102c29b882d28234333096dd5fc226ad1a92119e00206e4c26e">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_idtoken_test.go</strong><dd><code>Update
tests for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_idtoken_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+4/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signin_otp_email_verify_test.go</strong><dd><code>Update
tests for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_otp_email_verify_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-df88ef70165a67033c322cc91cd5d0c28d7459f69c709ac9074fb8222e518a7f">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_pat_test.go</strong><dd><code>Update tests
for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signin_pat_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-020127c3b0d584aa14d94f93ce33be359ce58e7fb9b893211d4edaaceedac9e9">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signup_email_password_test.go</strong><dd><code>Update
tests for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signup_email_password_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-c7050138b811ec2f854c0dfa34ac1eb9f03831c1f682e6a677dfe16943cb5f84">+5/-5</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signup_webauthn_verify_test.go</strong><dd><code>Update
tests for optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_signup_webauthn_verify_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-c93cb267e3fcbec34fe2f8c5dbc204bb6d2cbc9fff58597ad761da5a8e661c3c">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_token_test.go</strong><dd><code>Update tests for
optional phoneNumber field</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/post_token_test.go

- Updated tests to reflect `phoneNumber` field being optional.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/586/files#diff-dfb4a72aeccf26b3cfb4f1a91a0d2807896febd4b602cfca4b751636befde18a">+2/-2</a>&nbsp;
&nbsp; &nbsp; </td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-21 16:47:49 +01:00
David Barroso
ff724cdb04 fix: add missing kid to JWT header (#585)
### **PR Type**
Bug fix


___

### **Description**
- Added a `kid` field to the `JWTGetter` struct to include the Key ID in
the JWT header.
- Initialized the `kid` field in the `NewJWTGetter` function using the
`jwtSecret.KeyID`.
- Modified the `GetToken` method to include the `kid` in the JWT header
if it is not empty.



___



### **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>jwt.go</strong><dd><code>Add missing `kid` to JWT
header in `JWTGetter`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/jwt.go

<li>Added <code>kid</code> field to <code>JWTGetter</code> struct.<br>
<li> Initialized <code>kid</code> field in <code>NewJWTGetter</code>
function.<br> <li> Included <code>kid</code> in JWT header if present in
<code>GetToken</code> method.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/585/files#diff-2b63f932811bd25d3716aca99c9a61a691d412f94ab1ce61d85768deb84d3dd9">+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
2024-11-19 13:37:11 +01:00
David Barroso
d8fbbcf43a fix: update node deps due to vulns (#583)
### **PR Type**
Bug fix, Dependencies


___

### **Description**
- Removed `GHSA-952p-6rrq-rcjv` from the allowlist in `audit-ci.jsonc`.
- Added new dependency overrides in `package.json` for `cookie`,
`elliptic`, and `cross-spawn` to address vulnerabilities.
- Updated `pnpm-lock.yaml` to reflect the new versions of `cookie`,
`elliptic`, and `cross-spawn`, and removed older versions of these and
other dependencies.



___



### **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>audit-ci.jsonc</strong><dd><code>Remove specific
vulnerability from allowlist</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

audit-ci.jsonc

- Removed `GHSA-952p-6rrq-rcjv` from the allowlist.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/583/files#diff-4ede69da2a1704e53e08b8d647a315c202f037cc9277f16c94176d9622d261c6">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></td></tr><tr><td><strong>Dependencies</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Add new dependency
overrides for security</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

package.json

<li>Added new dependency overrides for <code>cookie</code>,
<code>elliptic</code>, and <code>cross-spawn</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/583/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+4/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>pnpm-lock.yaml</strong><dd><code>Update dependencies to
address vulnerabilities</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

pnpm-lock.yaml

<li>Updated versions for <code>cookie</code>, <code>elliptic</code>, and
<code>cross-spawn</code>.<br> <li> Removed older versions of
<code>cookie</code>, <code>cross-spawn</code>, and other
dependencies.<br> <br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/583/files#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bb">+25/-93</a>&nbsp;
</td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-18 16:28:22 +01:00
David Barroso
a199f4ede3 feat: implement OTP over email (#582)
Implements https://github.com/nhost/nhost/issues/2651

example:

```
curl -X POST \
    -H "Content-Type: application/json" \
    -d '{"email": "asd@asd.com"}' \
    http://localhost:4000/signin/otp/email

# get OTP from email

curl -X POST \
    -H "Content-Type: application/json" \
    -d '{"email": "asd@asd.com","otp":"129746"}' \
    http://localhost:4000/signin/otp/email/verify
```

### **PR Type**
Enhancement, Tests


___

### **Description**
- Added new OTP email sign-in and verification endpoints.
- Defined new request and response types for OTP email sign-in and
verification.
- Added configuration and command-line flags for enabling OTP email.
- Implemented controller logic for OTP email sign-in.
- Added tests for OTP email sign-in functionality.
- Updated OpenAPI documentation for new endpoints.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>8
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Add OTP email sign-in
and verification endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/server.gen.go

<li>Added new endpoints for OTP email sign-in and verification.<br> <li>
Updated interface and middleware to handle new OTP routes.<br> <li>
Registered new OTP routes in the router.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+206/-64</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Define OTP email sign-in
and verification types</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/types.gen.go

<li>Defined new request and response types for OTP email sign-in and
<br>verification.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+27/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>get_verify.go</strong><dd><code>Add OTP ticket type
handling</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; </dd></summary>
<hr>

go/controller/get_verify.go

- Added OTP ticket type handling in verification logic.



</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_otp_email.go</strong><dd><code>Implement
OTP email sign-in logic</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; </dd></summary>
<hr>

go/controller/post_signin_otp_email.go

- Implemented controller logic for OTP email sign-in.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-5c2341d0b9cc04c12b83fb8a97a2c9d942dcfbb02e0bd802f035ea73e3efbdcc">+52/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_otp_verify.go</strong><dd><code>Add
placeholder for OTP verification logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/controller/post_signin_otp_verify.go

- Added placeholder for OTP verification logic.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-34b399d52c93703b4829213e118b29a22204847d130bdfb3dff2d9c91f30c415">+14/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>

<summary><strong>post_signin_passwordless_email.go</strong><dd><code>Refactor
passwordless email sign-in logic</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/post_signin_passwordless_email.go

<li>Refactored existing passwordless email sign-in logic.<br> <li>
Extracted common email sign-in validation and ticket generation
logic.<br> <br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-b84756f7f1b9ced640c9a925f5e2b2b00a8bd3b6d47ae9d820cc03e42a65e0ae">+67/-40</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows_tickets.go</strong><dd><code>Add OTP ticket
type and generation logic</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/workflows_tickets.go

- Added OTP ticket type and OTP generation logic.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-a4d16eaab24ba5b8c7b93fb112b8dd7a7ff7a70308e2d334b1ba6ba38df8b1ee">+17/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>templates.go</strong><dd><code>Add OTP email
notification template</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>

go/notifications/templates.go

- Added template name for OTP email notifications.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-7200e4e0d06dc71060ca7becfdd9ad2e684ca90426c8de883e8d59fa2b1c767f">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>3 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>config.go</strong><dd><code>Add OTP email configuration
flag</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; </dd></summary>
<hr>

go/cmd/config.go

- Added configuration flag for enabling OTP email.



</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>serve.go</strong><dd><code>Add command-line flag for
OTP email</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>

go/cmd/serve.go

- Added command-line flag for enabling OTP email.



</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>config.go</strong><dd><code>Add OTP email enabled field
to config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/config.go

- Added OTP email enabled field to configuration struct.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-77fe34a234b413cd5f46aa02ee1cb93864fc387e765cd7dd1a54efd7ac9a4eb0">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>errors.go</strong><dd><code>Add error response handlers
for OTP email</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/errors.go

- Added error response handlers for OTP email endpoints.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+8/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>3
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>main_test.go</strong><dd><code>Update ticket comparison
logic for OTP</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/main_test.go

- Updated ticket comparison logic to handle OTP tickets.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-a13f50ba7fee39bdeff8c7f63e51af45b3e837d359608a042d7e2e8d50fb8b89">+13/-6</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_otp_email_test.go</strong><dd><code>Add
tests for OTP email sign-in</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; </dd></summary>
<hr>

go/controller/post_signin_otp_email_test.go

- Added tests for OTP email sign-in functionality.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-8b00ba05ca046df6350ea7ebd3e3537b752b009847691497eb5d09c09f265b5c">+596/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>validator_test.go</strong><dd><code>Update
configuration for OTP email tests</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/validator_test.go

- Updated configuration for OTP email tests.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-3f42f5f887ad54ac2f169b2629a4d17be0917e55ca60bfac885300953c8cd5f2">+32/-33</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Add OpenAPI docs for OTP
email endpoints</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/api/openapi.yaml

<li>Added OpenAPI documentation for OTP email sign-in and verification
<br>endpoints.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/582/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+85/-3</a>&nbsp;
&nbsp; </td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information

---------

Co-authored-by: Hassan Ben Jobrane <hsanbenjobrane@gmail.com>
2024-11-18 13:41:32 +01:00
David Barroso
7a092cad77 feat: allow configuring audience for idtoken validation and use fake provider for testing (#581)
### **PR Type**
Enhancement, Tests


___

### **Description**
- Added support for configuring audience for ID token validation.
- Introduced a `FakeProvider` for testing purposes.
- Replaced `AppleClientID` and `GoogleClientID` with `AppleAudience` and
`GoogleAudience` in configurations and tests.
- Refactored OIDC providers to use `GetJWTKeyFunc` instead of
`GetJWKURL`.
- Added helper functions for generating test tokens in tests.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>9
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>api.go</strong><dd><code>Add `FakeProvider` constant
for testing</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/api/api.go

- Added a constant `FakeProvider`.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-db7c88224e93eb476cfd418ef861c03f4371d7469911b6496f874b01bbd24921">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>config.go</strong><dd><code>Remove client ID fields
from configuration</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/cmd/config.go

<li>Removed <code>AppleClientID</code> and <code>GoogleClientID</code>
from the configuration.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-6ed50c9d309f6e7cf03742253995dfc65ae67702ae9c4aeb650b24a9b87cf377">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>serve.go</strong><dd><code>Replace client ID with
audience in serve command</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/cmd/serve.go

<li>Replaced <code>AppleClientID</code> and <code>GoogleClientID</code>
with <code>AppleAudience</code> and <br><code>GoogleAudience</code>.<br>
<li> Updated flag names and usages accordingly.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-a900f3187c126bacf5c9c5b1745b5d14bc583c01ab8f1ca84ae449751c224b68">+9/-8</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>config.go</strong><dd><code>Remove client ID fields
from controller config</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/config.go

<li>Removed <code>AppleClientID</code> and <code>GoogleClientID</code>
from the <code>Config</code> struct.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-77fe34a234b413cd5f46aa02ee1cb93864fc387e765cd7dd1a54efd7ac9a4eb0">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows.go</strong><dd><code>Add support for
`FakeProvider` in workflows</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/workflows.go

- Added support for `FakeProvider` in `getIDTokenValidator`.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>apple.go</strong><dd><code>Refactor Apple OIDC provider
to use `GetJWTKeyFunc`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/oidc/apple.go

<li>Refactored to use <code>GetJWTKeyFunc</code> instead of
<code>GetJWKURL</code>.<br> <li> Moved profile extraction logic to a
common function.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-047d8224a5df2d1a55e156bb24c26205deaf254b8f135f0458b2980be774b702">+10/-19</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>fake_provider.go</strong><dd><code>Add `FakeProvider`
for testing OIDC</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>

go/oidc/fake_provider.go

- Added a new `FakeProvider` for testing purposes.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-36c528ff8f6147f9263d34286a683275e4ddd1e7ebdd0f71cb1dc17238aca6d9">+44/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>google.go</strong><dd><code>Refactor Google OIDC
provider to use `GetJWTKeyFunc`</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/oidc/google.go

<li>Refactored to use <code>GetJWTKeyFunc</code> instead of
<code>GetJWKURL</code>.<br> <li> Moved profile extraction logic to a
common function.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-e1d9157b0b0436863d2a99dbb87fba23212cfc1a9192d3616797fc5a6df4f093">+13/-2</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>idtoken.go</strong><dd><code>Add `FakeProvider` support
and refactor ID token validation</code></dd></summary>
<hr>

go/oidc/idtoken.go

<li>Added support for <code>FakeProvider</code> in
<code>IDTokenValidatorProviders</code>.<br> <li> Refactored
<code>IDTokenValidator</code> to use <code>jwtKeyFunc</code> instead of
<br><code>jwkSetKeyFunc</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-90f49038bd9231d2b4ddddc3071dcbc97c373603f56955ead2e8ced0ee7b7259">+27/-13</a>&nbsp;
</td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>4
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>post_link_idtoken_test.go</strong><dd><code>Add test
token helper and use `FakeProvider` in link ID token
tests</code></dd></summary>
<hr>

go/controller/post_link_idtoken_test.go

<li>Added <code>testToken</code> helper function for generating test
tokens.<br> <li> Replaced <code>Google</code> provider with
<code>FakeProvider</code> in tests.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-8de432126fa0e0242bd7183c12a5759f7ba3d06593e38311a6b379485b2c7452">+45/-11</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>post_signin_idtoken_test.go</strong><dd><code>Add test
token helper and use <code>FakeProvider</code> in sign-in ID token
tests</code></dd></summary>
<hr>

go/controller/post_signin_idtoken_test.go

<li>Added <code>testToken</code> helper function for generating test
tokens.<br> <li> Replaced <code>Google</code> provider with
<code>FakeProvider</code> in tests.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-d849cc9b72340eb39d633b2446f3223cb202e09cabdef07b5ce512f15fc129f2">+54/-57</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>validator_test.go</strong><dd><code>Remove client ID
fields from validator tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/validator_test.go

<li>Removed <code>AppleClientID</code> and <code>GoogleClientID</code>
from the configuration.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-3f42f5f887ad54ac2f169b2629a4d17be0917e55ca60bfac885300953c8cd5f2">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>idtoken_test.go</strong><dd><code>Add test token helper
and use `FakeProvider` in ID token tests</code></dd></summary>
<hr>

go/oidc/idtoken_test.go

<li>Added <code>testToken</code> helper function for generating test
tokens.<br> <li> Replaced <code>Google</code> provider with
<code>FakeProvider</code> in tests.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/581/files#diff-329b609f83ff40defe79f2c984595b7b8cee9be2171da1c0ada41d2649c048ad">+41/-49</a>&nbsp;
</td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-15 12:14:54 +01:00
David Barroso
cc4eff69cd feat: migrate /verify endpoint (#579)
### **PR Type**
Enhancement, Bug fix, Documentation


___

### **Description**
- Added and implemented the `GetVerify` endpoint and its middleware in
the server.
- Defined new constants and parameters for the `GetVerify` endpoint.
- Implemented methods to update user email and verify email in the
controller.
- Enhanced error handling for `GetVerify` responses.
- Added workflows and SQL queries for updating user email and verifying
email.
- Removed `verifyRouter` and related code from the routes.
- Updated dependencies in `go.mod` and `go.sum`.
- Added `/verify` endpoint to the OpenAPI specification.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>11
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Add and implement
`GetVerify` endpoint and middleware</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/api/server.gen.go

<li>Added <code>GetVerify</code> endpoint to
<code>ServerInterface</code>.<br> <li> Implemented
<code>GetVerify</code> operation middleware.<br> <li> Registered
<code>GetVerify</code> handler in the router.<br> <li> Added
<code>GetVerify</code> request and response structures.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+175/-57</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Define constants and
parameters for `GetVerify` endpoint</code>&nbsp; </dd></summary>
<hr>

go/api/types.gen.go

<li>Defined new constants for <code>TicketTypeQuery</code> and
<code>GetVerifyParamsType</code>.<br> <li> Added
<code>GetVerifyParams</code> structure.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+40/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>controller.go</strong><dd><code>Implement user email
update and verification methods</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/controller.go

<li>Added methods to update user email and verify email.<br> <li>
Implemented <code>sendRedirectError</code> method.<br> <li> Added
<code>generateRedirectURL</code> function.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-68eba6c5b3be94c2016a5c821351ad07c60e395226594ff744901f759e22af15">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>errors.go</strong><dd><code>Enhance error handling for
`GetVerify` responses</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/controller/errors.go

<li>Added <code>VisitGetVerifyResponse</code> method to
<code>ErrorResponse</code>.<br> <li> Implemented
<code>sendRedirectError</code> method.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+61/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>get_verify.go</strong><dd><code>Implement `GetVerify`
controller function and helpers</code>&nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/get_verify.go

<li>Implemented <code>GetVerify</code> controller function.<br> <li>
Added helper functions for ticket validation and user verification.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-e64106bbe29a6baf928dd3f91fdfbaf6607ebc51b1a5bf57632718137db9ef9c">+139/-0</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>workflows.go</strong><dd><code>Add workflows for user
email update and verification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

go/controller/workflows.go

- Added workflows for updating user email and verifying email.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-6aaacc47584f1edde5a01051611a7baffc583fc32b48df6d7fee39afa16a65cb">+39/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>query.sql.go</strong><dd><code>Add SQL queries for user
email update and verification</code>&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/sql/query.sql.go

- Added SQL queries for updating user email and verifying email.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-442fde6e20ac506fb6bc13c00a7374ee9c33b183ffda72db4e49e1b013cd4cde">+80/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove `verifyRouter` from
routes</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; </dd></summary>
<hr>

src/routes/index.ts

- Removed `verifyRouter` import and usage.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-4c1a276a826a5147689418cdbf9bde24c8326cedb30a61144fe7867bd99113ef">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove `verifyRouter` and
related code</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

src/routes/verify/index.ts

- Deleted `verifyRouter` and related code.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-8876f16f70c910ae16056409f1f39a67ccd0d54a9fdab6925c7b78a166198880">+0/-26</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>verify.ts</strong><dd><code>Remove `verifyHandler` and
related code</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

src/routes/verify/verify.ts

- Deleted `verifyHandler` and related code.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-d6d25e669ff32400028ea0e3ce0855d9aa873ff86439f8e2599b5589de6ef5f8">+0/-103</a>&nbsp;
</td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>query.sql</strong><dd><code>Add SQL queries for user
email update and verification</code>&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/sql/query.sql

- Added SQL queries for updating user email and verifying email.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-c19dd96472c44a7389d4d1f72e0a1879df1e06e8e4d333ca3cb6b6dfbe3083ef">+12/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>controller.go</strong><dd><code>Add mock methods for
user email update and verification</code>&nbsp; &nbsp; </dd></summary>
<hr>

go/controller/mock/controller.go

<li>Added mock methods for <code>UpdateUserConfirmChangeEmail</code> and
<br><code>UpdateUserVerifyEmail</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-f1b1f168b0924b023c571d6274d53defef472a872f5fee4de1c4ae78959cc327">+60/-0</a>&nbsp;
&nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>go.mod</strong><dd><code>Update dependencies in
go.mod</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;
</dd></summary>
<hr>

go.mod

- Added new indirect dependencies.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+1/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>go.sum</strong><dd><code>Update dependencies in
go.sum</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;
</dd></summary>
<hr>

go.sum

- Added new entries for dependencies.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+6/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Add `/verify` endpoint
to OpenAPI specification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

<li>Added <code>/verify</code> endpoint definition.<br> <li> Updated
components and parameters for <code>verify</code> endpoint.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/579/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+69/-3</a>&nbsp;
&nbsp; </td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-14 19:16:05 +01:00
David Barroso
c552ad14fd feat: added support for RSA keys (#578)
### **PR Type**
Enhancement, Documentation


___

### **Description**
- Added support for RSA keys in JWT configuration, including handling
for both public and private keys.
- Implemented a new endpoint to retrieve public keys for JWT
verification in JWK Set format.
- Defined new models for `JWK` and `JWKSet`.
- Updated Docker Compose configuration to use RSA keys for JWT.
- Enhanced JWT generation and verification to handle different
algorithms.
- Documented the new JWK Set retrieval endpoint in the OpenAPI
specification.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>7
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>server.gen.go</strong><dd><code>Add JWK Set retrieval
endpoint and middleware</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/server.gen.go

<li>Added <code>GetWellKnownJwksJson</code> handler to
<code>ServerInterface</code>.<br> <li> Implemented middleware for
<code>GetWellKnownJwksJson</code>.<br> <li> Registered new route for JWK
Set retrieval.<br> <li> Defined request and response objects for
<code>GetWellKnownJwksJson</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-ebca0209f464067ebb38f8fad9dd352058e15702563f575d649434a1e7722b3d">+117/-54</a></td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.gen.go</strong><dd><code>Define JWK and JWKSet
models</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; </dd></summary>
<hr>

go/api/types.gen.go

- Added `JWK` and `JWKSet` models.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-086764bd76c1416b0d0ddedcc804c3e6983907886215f9bb51162df91e823254">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>get_well_known_jwks.go</strong><dd><code>Implement JWK
Set retrieval function</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>

go/controller/get_well_known_jwks.go

- Implemented `GetWellKnownJwksJson` function to return JWK Set.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-1f12ac5ee1ed610d75371c447a27603ef3d519ac8e7e981c15e0c67c29013ece">+15/-0</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>jwt.go</strong><dd><code>Add RSA key support and JWK
Set handling in JWT configuration</code></dd></summary>
<hr>

go/controller/jwt.go

<li>Added support for RSA keys in JWT configuration.<br> <li>
Implemented <code>decodeJWTSecretForRSA</code> function.<br> <li>
Updated <code>decodeJWTSecret</code> to handle different JWT types.<br>
<li> Modified <code>JWTGetter</code> to include JWK Set.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-2b63f932811bd25d3716aca99c9a61a691d412f94ab1ce61d85768deb84d3dd9">+84/-8</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>types.ts</strong><dd><code>Update JwtSecret type with
optional signing_key</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

src/types.ts

- Added optional `signing_key` field to `JwtSecret` type.



</details>


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

</tr>

<tr>
  <td>
    <details>
<summary><strong>generate.ts</strong><dd><code>Enhance JWT generation
with algorithm-specific secret handling</code></dd></summary>
<hr>

src/utils/jwt/generate.ts

<li>Added <code>getSecret</code> function to handle different JWT
algorithms.<br> <li> Updated <code>sign</code> function to use
<code>getSecret</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-45151285602729cab0f20b4b997a8a6a6cffdfc65ec51c1fb00578fefb64fbd2">+28/-3</a>&nbsp;
&nbsp; </td>

</tr>

<tr>
  <td>
    <details>
<summary><strong>get-claims.ts</strong><dd><code>Enhance JWT
verification with algorithm-specific secret
handling</code></dd></summary>
<hr>

src/utils/jwt/get-claims.ts

- Updated `verifyJwt` to use `getSecret` for key retrieval.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-ac9b7f090e07ad27932f65c9229255cafeb78c209d3b9f333f3c2963ef67bd9b">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Error
handling</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>errors.go</strong><dd><code>Add JWT configuration
error</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; </dd></summary>
<hr>

go/controller/errors.go

- Added `ErrJWTConfiguration` error.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-d2ebd3582b320c6db8161b6f3f90931cee507a68d9667ca1f6c88e8108ede569">+2/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>docker-compose.yaml</strong><dd><code>Update JWT secret
configuration to RSA in Docker Compose</code>&nbsp; </dd></summary>
<hr>

build/dev/docker/docker-compose.yaml

- Updated JWT secret configuration to use RSA keys.



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-fc60a6b1b5479592a17c3b65cc2ec11b9dad3ad661372656cdc86b983e2a7dcd">+3/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>openapi.yaml</strong><dd><code>Document JWK Set
retrieval endpoint and schemas</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go/api/openapi.yaml

<li>Added JWK and JWKSet schemas.<br> <li> Documented new endpoint for
JWK Set retrieval.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/578/files#diff-9fe8f7da727ff26c02939aa060e0348d870e6dd95ba433f9f4d53a9a6967aca0">+49/-0</a>&nbsp;
&nbsp; </td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information
2024-11-13 15:43:03 +01:00
David Barroso
c8e63c31ee feat: allow linking providers to existing users using an idtoken (#577) 2024-11-13 15:30:46 +01:00
David Barroso
194970bcf4 feat: added /signin/idtoken (#576)
Related to https://github.com/nhost/nhost/issues/2554

This enables the possibility to authenticate using idtokens,
particularly useful for native authentication on IOS/Android devices.
2024-11-11 16:50:02 +01:00
dependabot[bot]
b2dc2dd8f9 chore: bump nixbuild/nix-quick-install-action from 28 to 29 (#229)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 28 to 29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v29</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.18.2 -&gt; 2.18.8, 2.19.3 -&gt; 2.19.6,
2.20.5 -&gt; 2.20.8,
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.22.3, 2.23.3, 2.24.9</p>
</li>
<li>
<p>Bump default Nix version: 2.21.0 -&gt; 2.24.9</p>
</li>
<li>
<p>Add support for <code>macos-14</code> (ARM64) runners, and remove
support for deprecated
runners. The supported runners are now <code>ubuntu-22.04</code>,
<code>macos-13</code> and
<code>macos-14</code>. Other runners might work, but are not tested by
the
<code>nix-quick-install-action</code> CI.</p>
</li>
</ul>
<h2>Supported Nix Versions on Linux Runners</h2>
<ul>
<li>2.24.9</li>
<li>2.23.3</li>
<li>2.22.3</li>
<li>2.21.4</li>
<li>2.20.8</li>
<li>2.19.6</li>
<li>2.18.8</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on MacOS Runners</h2>
<ul>
<li>2.24.9</li>
<li>2.23.3</li>
<li>2.22.3</li>
<li>2.21.4</li>
<li>2.20.8</li>
<li>2.19.6</li>
<li>2.18.8</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v29</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.18.2 -&gt; 2.18.8, 2.19.3 -&gt; 2.19.6,
2.20.5 -&gt; 2.20.8,
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.22.3, 2.23.3, 2.24.9</p>
</li>
<li>
<p>Bump default Nix version: 2.21.0 -&gt; 2.24.9</p>
</li>
<li>
<p>Add support for <code>macos-14</code> (ARM64) runners, and remove
support for deprecated
runners. The supported runners are now <code>ubuntu-22.04</code>,
<code>macos-13</code> and
<code>macos-14</code>. Other runners might work, but are not tested by
the
<code>nix-quick-install-action</code> CI.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="25aff27c25"><code>25aff27</code></a>
Release v29</li>
<li><a
href="e2067cf49b"><code>e2067cf</code></a>
flake: Remove unused system</li>
<li><a
href="4ed3e0f5c8"><code>4ed3e0f</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/51">#51</a>
from nixbuild/update-actions</li>
<li><a
href="1e71a36371"><code>1e71a36</code></a>
ci: Add arch to artifact names</li>
<li><a
href="da4598eac4"><code>da4598e</code></a>
ci: Update actions</li>
<li><a
href="1a459e021e"><code>1a459e0</code></a>
Work around MacOS Arm64 bootstrap problem</li>
<li><a
href="55b85d501e"><code>55b85d5</code></a>
ci: Also build with macos-14 so MacOS Arm64 artifacts are produced</li>
<li><a
href="843aed6c2a"><code>843aed6</code></a>
Fix incorrect env var in install script</li>
<li><a
href="4f426bb427"><code>4f426bb</code></a>
Remove obsolete comment in install script</li>
<li><a
href="eb8469b4e1"><code>eb8469b</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/47">#47</a>
from dbarrosop/master</li>
<li>Additional commits viewable in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v28...v29">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=28&new-version=29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 08:55:46 +01:00
dependabot[bot]
d9e55890cc chore: bump nixbuild/nix-quick-install-action from 28 to 29 (#575)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 28 to 29.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v29</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.18.2 -&gt; 2.18.8, 2.19.3 -&gt; 2.19.6,
2.20.5 -&gt; 2.20.8,
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.22.3, 2.23.3, 2.24.9</p>
</li>
<li>
<p>Bump default Nix version: 2.21.0 -&gt; 2.24.9</p>
</li>
<li>
<p>Add support for <code>macos-14</code> (ARM64) runners, and remove
support for deprecated
runners. The supported runners are now <code>ubuntu-22.04</code>,
<code>macos-13</code> and
<code>macos-14</code>. Other runners might work, but are not tested by
the
<code>nix-quick-install-action</code> CI.</p>
</li>
</ul>
<h2>Supported Nix Versions on Linux Runners</h2>
<ul>
<li>2.24.9</li>
<li>2.23.3</li>
<li>2.22.3</li>
<li>2.21.4</li>
<li>2.20.8</li>
<li>2.19.6</li>
<li>2.18.8</li>
<li>2.3.18</li>
</ul>
<h2>Supported Nix Versions on MacOS Runners</h2>
<ul>
<li>2.24.9</li>
<li>2.23.3</li>
<li>2.22.3</li>
<li>2.21.4</li>
<li>2.20.8</li>
<li>2.19.6</li>
<li>2.18.8</li>
<li>2.3.18</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v29</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.18.2 -&gt; 2.18.8, 2.19.3 -&gt; 2.19.6,
2.20.5 -&gt; 2.20.8,
2.21.0 -&gt; 2.21.4.</p>
</li>
<li>
<p>Add Nix versions: 2.22.3, 2.23.3, 2.24.9</p>
</li>
<li>
<p>Bump default Nix version: 2.21.0 -&gt; 2.24.9</p>
</li>
<li>
<p>Add support for <code>macos-14</code> (ARM64) runners, and remove
support for deprecated
runners. The supported runners are now <code>ubuntu-22.04</code>,
<code>macos-13</code> and
<code>macos-14</code>. Other runners might work, but are not tested by
the
<code>nix-quick-install-action</code> CI.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="25aff27c25"><code>25aff27</code></a>
Release v29</li>
<li><a
href="e2067cf49b"><code>e2067cf</code></a>
flake: Remove unused system</li>
<li><a
href="4ed3e0f5c8"><code>4ed3e0f</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/51">#51</a>
from nixbuild/update-actions</li>
<li><a
href="1e71a36371"><code>1e71a36</code></a>
ci: Add arch to artifact names</li>
<li><a
href="da4598eac4"><code>da4598e</code></a>
ci: Update actions</li>
<li><a
href="1a459e021e"><code>1a459e0</code></a>
Work around MacOS Arm64 bootstrap problem</li>
<li><a
href="55b85d501e"><code>55b85d5</code></a>
ci: Also build with macos-14 so MacOS Arm64 artifacts are produced</li>
<li><a
href="843aed6c2a"><code>843aed6</code></a>
Fix incorrect env var in install script</li>
<li><a
href="4f426bb427"><code>4f426bb</code></a>
Remove obsolete comment in install script</li>
<li><a
href="eb8469b4e1"><code>eb8469b</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/47">#47</a>
from dbarrosop/master</li>
<li>Additional commits viewable in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v28...v29">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=28&new-version=29)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-06 08:55:28 +01:00
github-actions[bot]
c21d1d4547 chore: modify update dependencies schedule (#228)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-11-01 09:53:33 +01:00
github-actions[bot]
eee3d0554c chore: modify update dependencies schedule (#574)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-11-01 09:34:58 +01:00
David Barroso
bbb97d4a2f fix: make sure AUTH_DISABLE_NEW_USERS is respected when using oauth (#573)
Fixes https://github.com/nhost/nhost/issues/2914
2024-10-11 12:01:22 +02:00
dependabot[bot]
e0c0709d1e chore: bump cachix/install-nix-action from 29 to 30 (#226)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 29 to 30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v30</h2>
<ul>
<li>Nix: 2.24.7 -&gt; 2.24.9, fixing <a
href="https://github.com/NixOS/nix/security/advisories/GHSA-6fjr-mq49-mm2c">GHSA-6fjr-mq49-mm2c</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08dcb3a5e6"><code>08dcb3a</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/217">#217</a>
from Enzime/bump</li>
<li><a
href="4204e15198"><code>4204e15</code></a>
nix: 2.24.8 -&gt; 2.24.9</li>
<li><a
href="6a10e2e9fd"><code>6a10e2e</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/216">#216</a>
from Mic92/nix-bump</li>
<li><a
href="2bb614e91a"><code>2bb614e</code></a>
Nix: 2.24.7 -&gt; 2.24.8</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v29...v30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=29&new-version=30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-04 09:42:07 +02:00
dependabot[bot]
58dc72420d chore: bump cachix/install-nix-action from 29 to 30 (#572)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 29 to 30.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v30</h2>
<ul>
<li>Nix: 2.24.7 -&gt; 2.24.9, fixing <a
href="https://github.com/NixOS/nix/security/advisories/GHSA-6fjr-mq49-mm2c">GHSA-6fjr-mq49-mm2c</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="08dcb3a5e6"><code>08dcb3a</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/217">#217</a>
from Enzime/bump</li>
<li><a
href="4204e15198"><code>4204e15</code></a>
nix: 2.24.8 -&gt; 2.24.9</li>
<li><a
href="6a10e2e9fd"><code>6a10e2e</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/216">#216</a>
from Mic92/nix-bump</li>
<li><a
href="2bb614e91a"><code>2bb614e</code></a>
Nix: 2.24.7 -&gt; 2.24.8</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v29...v30">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=29&new-version=30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-04 09:41:38 +02:00
github-actions[bot]
449f1c58cf [Scheduled] Update dependencies (#225)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-10-01 09:26:15 +02:00
github-actions[bot]
6e160faf7a [Scheduled] Update dependencies (#571)
### **User description**
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs


___

### **PR Type**
Enhancement, Dependencies


___

### **Description**
This PR includes the following updates:
- Updated the Go version from 1.22.0 to 1.23 in `go.mod`.
- Updated the toolchain from go1.22.5 to go1.23.1 in `go.mod`.
- Updated multiple dependencies to their latest versions in `go.mod`.
- Updated checksums for dependencies in `go.sum` to match the new
versions.


___



### **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>go.mod</strong><dd><code>Update Go version and
dependencies in go.mod</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

go.mod

<li>Updated Go version from 1.22.0 to 1.23<br> <li> Updated toolchain
from go1.22.5 to go1.23.1<br> <li> Updated multiple dependencies to
their latest versions<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/571/files#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6">+18/-18</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>go.sum</strong><dd><code>Update dependency checksums in
go.sum</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>

go.sum

- Updated checksums for dependencies to match new versions



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/571/files#diff-3295df7234525439d778f1b282d146a4f1ff6b415248aaac074e8042d9f42d63">+36/-36</a>&nbsp;
</td>

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

___

> 💡 **PR-Agent usage**: Comment `/help "your question"` on any pull
request to receive relevant information

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-10-01 09:05:00 +02:00
dependabot[bot]
4e4adee643 chore: bump cachix/install-nix-action from V28 to 29 (#570)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from V28 to 29. This release includes the previously tagged commit.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v29</h2>
<p>Bumps Nix to 2.24.8 to fix CVE-2024-47174</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9f70348d77"><code>9f70348</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/215">#215</a>
from Mic92/nix-bump</li>
<li><a
href="4f91dc2b65"><code>4f91dc2</code></a>
Nix: 2.24.6 -&gt; 2.24.7</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/V28...v29">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 12:08:12 +02:00
dependabot[bot]
97eb40b2a2 chore: bump cachix/install-nix-action from V28 to 29 (#224)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from V28 to 29. This release includes the previously tagged commit.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v29</h2>
<p>Bumps Nix to 2.24.8 to fix CVE-2024-47174</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9f70348d77"><code>9f70348</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/215">#215</a>
from Mic92/nix-bump</li>
<li><a
href="4f91dc2b65"><code>4f91dc2</code></a>
Nix: 2.24.6 -&gt; 2.24.7</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/V28...v29">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 12:07:53 +02:00
David Barroso
2813bd6299 feat: added support for turnstile verification on signup (#568) 2024-09-27 11:39:24 +02:00
David Barroso
9cbe270238 chore: update nixops (#569) 2024-09-25 13:27:39 +02:00
Murugappan Chetty
91bb815043 fix: change hasura health check url to make auth server work in gcp (#565)
Google cloud doesnt support "z" urls -
https://stackoverflow.com/questions/43380939/where-does-the-convention-of-using-healthz-for-application-health-checks-come-f

And hasura provides an alternate end point for this
https://hasura.io/docs/2.0/api-reference/health/ .

### Checklist

- [ ] No breaking changes
- [X] Tests pass
- [X] New features have new tests
- [ ] Documentation is updated
2024-09-25 07:35:31 +02:00
dependabot[bot]
d37fbb0056 chore: bump cachix/install-nix-action from 27 to 28 (#562)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 27 to 28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v28</h2>
<p>Nix 2.24.6 - <a
href="https://github.com/NixOS/nix/security/advisories/GHSA-h4vv-h3jq-v493">https://github.com/NixOS/nix/security/advisories/GHSA-h4vv-h3jq-v493</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3715ab1a11"><code>3715ab1</code></a>
bump channel</li>
<li><a
href="1872f1ff9d"><code>1872f1f</code></a>
Nix: 2.22.1 -&gt; 2.24.6</li>
<li><a
href="e268b7aa05"><code>e268b7a</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/213">#213</a>
from phaer/patch-1</li>
<li><a
href="5b8c65d4d7"><code>5b8c65d</code></a>
Update README: hardware accel is available now...</li>
<li><a
href="ba01fffc51"><code>ba01fff</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/210">#210</a>
from guoard/patch-1</li>
<li><a
href="474f0a77aa"><code>474f0a7</code></a>
docs(readme): update checkout action version</li>
<li><a
href="725982224c"><code>7259822</code></a>
readme: V27</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v27...V28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=27&new-version=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-09-13 11:17:32 +02:00
dependabot[bot]
d2e05005ed chore: bump cachix/install-nix-action from 27 to 28 (#222)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 27 to 28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v28</h2>
<p>Nix 2.24.6 - <a
href="https://github.com/NixOS/nix/security/advisories/GHSA-h4vv-h3jq-v493">https://github.com/NixOS/nix/security/advisories/GHSA-h4vv-h3jq-v493</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3715ab1a11"><code>3715ab1</code></a>
bump channel</li>
<li><a
href="1872f1ff9d"><code>1872f1f</code></a>
Nix: 2.22.1 -&gt; 2.24.6</li>
<li><a
href="e268b7aa05"><code>e268b7a</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/213">#213</a>
from phaer/patch-1</li>
<li><a
href="5b8c65d4d7"><code>5b8c65d</code></a>
Update README: hardware accel is available now...</li>
<li><a
href="ba01fffc51"><code>ba01fff</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/210">#210</a>
from guoard/patch-1</li>
<li><a
href="474f0a77aa"><code>474f0a7</code></a>
docs(readme): update checkout action version</li>
<li><a
href="725982224c"><code>7259822</code></a>
readme: V27</li>
<li>See full diff in <a
href="https://github.com/cachix/install-nix-action/compare/v27...V28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=27&new-version=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 08:08:59 +02:00
dependabot[bot]
ed7fc85791 chore: bump DeterminateSystems/magic-nix-cache-action from 7 to 8 (#561)
Bumps
[DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action)
from 7 to 8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/determinatesystems/magic-nix-cache-action/releases">DeterminateSystems/magic-nix-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v8</h2>
<h2>What's Changed</h2>
<ul>
<li>RUST_LOG default to tracing our stuff, only debug for everything
else by <a
href="https://github.com/colemickens"><code>@​colemickens</code></a> in
<a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/63">DeterminateSystems/magic-nix-cache-action#63</a></li>
<li>Remove package-lock.json by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/64">DeterminateSystems/magic-nix-cache-action#64</a></li>
<li>Prevent the Action from failing with strict mode disabled by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/62">DeterminateSystems/magic-nix-cache-action#62</a></li>
<li>Fix nullish coalescing by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/65">DeterminateSystems/magic-nix-cache-action#65</a></li>
<li>Update detsys-ts by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/66">DeterminateSystems/magic-nix-cache-action#66</a></li>
<li>Provide info output for potential missing permissions block by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/73">DeterminateSystems/magic-nix-cache-action#73</a></li>
<li>Bump fast-xml-parser from 4.4.0 to 4.4.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/75">DeterminateSystems/magic-nix-cache-action#75</a></li>
<li>Update fast-xml-parser by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/78">DeterminateSystems/magic-nix-cache-action#78</a></li>
<li>Don't run the &quot;trusted&quot; checks if we're in a PR by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/85">DeterminateSystems/magic-nix-cache-action#85</a></li>
<li>Update <code>detsys-ts</code>: Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/63">#63</a>
from DeterminateSystems/retry-streams by <a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/84">DeterminateSystems/magic-nix-cache-action#84</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/colemickens"><code>@​colemickens</code></a>
made their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/63">DeterminateSystems/magic-nix-cache-action#63</a></li>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a> made
their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/75">DeterminateSystems/magic-nix-cache-action#75</a></li>
<li><a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
made their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/84">DeterminateSystems/magic-nix-cache-action#84</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v7...v8">https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v7...v8</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="87b14cf437"><code>87b14cf</code></a>
Update <code>detsys-ts</code> for: `Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/63">#63</a>
from DeterminateSystems/retry...</li>
<li><a
href="538f0296e2"><code>538f029</code></a>
Don't run the &quot;trusted&quot; checks if we're in a PR (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/85">#85</a>)</li>
<li><a
href="9d627e84ff"><code>9d627e8</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/78">#78</a>
from DeterminateSystems/update-fast-xml-parser</li>
<li><a
href="9d32f14410"><code>9d32f14</code></a>
Update fast-xml-parser</li>
<li><a
href="6181dd9ee2"><code>6181dd9</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/75">#75</a>
from DeterminateSystems/dependabot/npm_and_yarn/fast-x...</li>
<li><a
href="768ebc3208"><code>768ebc3</code></a>
Update built package</li>
<li><a
href="1929664175"><code>1929664</code></a>
Bump fast-xml-parser from 4.4.0 to 4.4.1</li>
<li><a
href="56ad6029ca"><code>56ad602</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/73">#73</a>
from DeterminateSystems/clarify-log-message</li>
<li><a
href="45d13621c5"><code>45d1362</code></a>
Provide info output for potential missing permissions block</li>
<li><a
href="7f56db3553"><code>7f56db3</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/66">#66</a>
from DeterminateSystems/update-detsys-ts</li>
<li>Additional commits viewable in <a
href="https://github.com/determinatesystems/magic-nix-cache-action/compare/v7...v8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DeterminateSystems/magic-nix-cache-action&package-manager=github_actions&previous-version=7&new-version=8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-09-10 09:30:20 +02:00
dependabot[bot]
168c433729 chore: bump DeterminateSystems/magic-nix-cache-action from 7 to 8 (#221)
Bumps
[DeterminateSystems/magic-nix-cache-action](https://github.com/determinatesystems/magic-nix-cache-action)
from 7 to 8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/determinatesystems/magic-nix-cache-action/releases">DeterminateSystems/magic-nix-cache-action's
releases</a>.</em></p>
<blockquote>
<h2>v8</h2>
<h2>What's Changed</h2>
<ul>
<li>RUST_LOG default to tracing our stuff, only debug for everything
else by <a
href="https://github.com/colemickens"><code>@​colemickens</code></a> in
<a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/63">DeterminateSystems/magic-nix-cache-action#63</a></li>
<li>Remove package-lock.json by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/64">DeterminateSystems/magic-nix-cache-action#64</a></li>
<li>Prevent the Action from failing with strict mode disabled by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/62">DeterminateSystems/magic-nix-cache-action#62</a></li>
<li>Fix nullish coalescing by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/65">DeterminateSystems/magic-nix-cache-action#65</a></li>
<li>Update detsys-ts by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/66">DeterminateSystems/magic-nix-cache-action#66</a></li>
<li>Provide info output for potential missing permissions block by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/73">DeterminateSystems/magic-nix-cache-action#73</a></li>
<li>Bump fast-xml-parser from 4.4.0 to 4.4.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/75">DeterminateSystems/magic-nix-cache-action#75</a></li>
<li>Update fast-xml-parser by <a
href="https://github.com/lucperkins"><code>@​lucperkins</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/78">DeterminateSystems/magic-nix-cache-action#78</a></li>
<li>Don't run the &quot;trusted&quot; checks if we're in a PR by <a
href="https://github.com/grahamc"><code>@​grahamc</code></a> in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/85">DeterminateSystems/magic-nix-cache-action#85</a></li>
<li>Update <code>detsys-ts</code>: Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/63">#63</a>
from DeterminateSystems/retry-streams by <a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/84">DeterminateSystems/magic-nix-cache-action#84</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/colemickens"><code>@​colemickens</code></a>
made their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/63">DeterminateSystems/magic-nix-cache-action#63</a></li>
<li><a
href="https://github.com/dependabot"><code>@​dependabot</code></a> made
their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/75">DeterminateSystems/magic-nix-cache-action#75</a></li>
<li><a
href="https://github.com/detsys-pr-bot"><code>@​detsys-pr-bot</code></a>
made their first contribution in <a
href="https://redirect.github.com/DeterminateSystems/magic-nix-cache-action/pull/84">DeterminateSystems/magic-nix-cache-action#84</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v7...v8">https://github.com/DeterminateSystems/magic-nix-cache-action/compare/v7...v8</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="87b14cf437"><code>87b14cf</code></a>
Update <code>detsys-ts</code> for: `Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/63">#63</a>
from DeterminateSystems/retry...</li>
<li><a
href="538f0296e2"><code>538f029</code></a>
Don't run the &quot;trusted&quot; checks if we're in a PR (<a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/85">#85</a>)</li>
<li><a
href="9d627e84ff"><code>9d627e8</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/78">#78</a>
from DeterminateSystems/update-fast-xml-parser</li>
<li><a
href="9d32f14410"><code>9d32f14</code></a>
Update fast-xml-parser</li>
<li><a
href="6181dd9ee2"><code>6181dd9</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/75">#75</a>
from DeterminateSystems/dependabot/npm_and_yarn/fast-x...</li>
<li><a
href="768ebc3208"><code>768ebc3</code></a>
Update built package</li>
<li><a
href="1929664175"><code>1929664</code></a>
Bump fast-xml-parser from 4.4.0 to 4.4.1</li>
<li><a
href="56ad6029ca"><code>56ad602</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/73">#73</a>
from DeterminateSystems/clarify-log-message</li>
<li><a
href="45d13621c5"><code>45d1362</code></a>
Provide info output for potential missing permissions block</li>
<li><a
href="7f56db3553"><code>7f56db3</code></a>
Merge pull request <a
href="https://redirect.github.com/determinatesystems/magic-nix-cache-action/issues/66">#66</a>
from DeterminateSystems/update-detsys-ts</li>
<li>Additional commits viewable in <a
href="https://github.com/determinatesystems/magic-nix-cache-action/compare/v7...v8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DeterminateSystems/magic-nix-cache-action&package-manager=github_actions&previous-version=7&new-version=8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-10 08:35:22 +02:00
dependabot[bot]
066bc1df6d chore: bump peter-evans/create-pull-request from 6 to 7 (#220)
Bumps
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v7.0.0</h2>
<p> Now supports commit signing with bot-generated tokens! See
&quot;What's new&quot; below. ✍️🤖</p>
<h3>Behaviour changes</h3>
<ul>
<li>Action input <code>git-token</code> has been renamed
<code>branch-token</code>, to be more clear about its purpose. The
<code>branch-token</code> is the token that the action will use to
create and update the branch.</li>
<li>The action now handles requests that have been rate-limited by
GitHub. Requests hitting a primary rate limit will retry twice, for a
total of three attempts. Requests hitting a secondary rate limit will
not be retried.</li>
<li>The <code>pull-request-operation</code> output now returns
<code>none</code> when no operation was executed.</li>
<li>Removed deprecated output environment variable
<code>PULL_REQUEST_NUMBER</code>. Please use the
<code>pull-request-number</code> action output instead.</li>
</ul>
<h3>What's new</h3>
<ul>
<li>The action can now sign commits as <code>github-actions[bot]</code>
when using <code>GITHUB_TOKEN</code>, or your own bot when using <a
href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens">GitHub
App tokens</a>. See <a
href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#commit-signature-verification-for-bots">commit
signing</a> for details.</li>
<li>Action input <code>draft</code> now accepts a new value
<code>always-true</code>. This will set the pull request to draft status
when the pull request is updated, as well as on creation.</li>
<li>A new action input <code>maintainer-can-modify</code> indicates
whether <a
href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork">maintainers
can modify</a> the pull request. The default is <code>true</code>, which
retains the existing behaviour of the action.</li>
<li>A new output <code>pull-request-commits-verified</code> returns
<code>true</code> or <code>false</code>, indicating whether GitHub
considers the signature of the branch's commits to be verified.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.36 to
18.19.39 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3000">peter-evans/create-pull-request#3000</a></li>
<li>build(deps-dev): bump ts-jest from 29.1.5 to 29.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3008">peter-evans/create-pull-request#3008</a></li>
<li>build(deps-dev): bump prettier from 3.3.2 to 3.3.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3018">peter-evans/create-pull-request#3018</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.0 to 29.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3019">peter-evans/create-pull-request#3019</a></li>
<li>build(deps-dev): bump eslint-plugin-prettier from 5.1.3 to 5.2.1 by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3035">peter-evans/create-pull-request#3035</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.39 to
18.19.41 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3037">peter-evans/create-pull-request#3037</a></li>
<li>build(deps): bump undici from 6.19.2 to 6.19.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3036">peter-evans/create-pull-request#3036</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.2 to 29.2.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3038">peter-evans/create-pull-request#3038</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.41 to
18.19.42 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3070">peter-evans/create-pull-request#3070</a></li>
<li>build(deps): bump undici from 6.19.4 to 6.19.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3086">peter-evans/create-pull-request#3086</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.42 to
18.19.43 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3087">peter-evans/create-pull-request#3087</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.3 to 29.2.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3088">peter-evans/create-pull-request#3088</a></li>
<li>build(deps): bump undici from 6.19.5 to 6.19.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3145">peter-evans/create-pull-request#3145</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.43 to
18.19.44 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3144">peter-evans/create-pull-request#3144</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3154">peter-evans/create-pull-request#3154</a></li>
<li>build(deps): bump undici from 6.19.7 to 6.19.8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3213">peter-evans/create-pull-request#3213</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.44 to
18.19.45 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3214">peter-evans/create-pull-request#3214</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3221">peter-evans/create-pull-request#3221</a></li>
<li>build(deps-dev): bump eslint-import-resolver-typescript from 3.6.1
to 3.6.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3255">peter-evans/create-pull-request#3255</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.45 to
18.19.46 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3254">peter-evans/create-pull-request#3254</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3256">peter-evans/create-pull-request#3256</a></li>
<li>v7 - signed commits by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/rustycl0ck"><code>@​rustycl0ck</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0">https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0</a></p>
<h2>Create Pull Request v6.1.0</h2>
<p> Adds <code>pull-request-branch</code> as an action output.</p>
<h2>What's Changed</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4320041ed3"><code>4320041</code></a>
feat: signed commits (v7) (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3057">#3057</a>)</li>
<li><a
href="0c2a66fe4a"><code>0c2a66f</code></a>
build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3256">#3256</a>)</li>
<li><a
href="17121bc5b5"><code>17121bc</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.45 to
18.19.46 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3254">#3254</a>)</li>
<li><a
href="87b5d6d564"><code>87b5d6d</code></a>
build(deps-dev): bump eslint-import-resolver-typescript (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3255">#3255</a>)</li>
<li><a
href="00897e0bc2"><code>00897e0</code></a>
build: update distribution (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3221">#3221</a>)</li>
<li><a
href="4cfc1fc717"><code>4cfc1fc</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.44 to
18.19.45 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3214">#3214</a>)</li>
<li><a
href="cb4ed6491a"><code>cb4ed64</code></a>
build(deps): bump undici from 6.19.7 to 6.19.8 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3213">#3213</a>)</li>
<li><a
href="4eb90b7bc7"><code>4eb90b7</code></a>
ci: separate test suite commands in pr comment</li>
<li><a
href="5308ecb864"><code>5308ecb</code></a>
ci: add sign-commits flag to test suite comment</li>
<li><a
href="ba864ad40c"><code>ba864ad</code></a>
build: update distribution (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3154">#3154</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/peter-evans/create-pull-request/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=6&new-version=7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 08:25:33 +02:00
dependabot[bot]
da87fba3d0 chore: bump peter-evans/create-pull-request from 6 to 7 (#560)
Bumps
[peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request)
from 6 to 7.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's
releases</a>.</em></p>
<blockquote>
<h2>Create Pull Request v7.0.0</h2>
<p> Now supports commit signing with bot-generated tokens! See
&quot;What's new&quot; below. ✍️🤖</p>
<h3>Behaviour changes</h3>
<ul>
<li>Action input <code>git-token</code> has been renamed
<code>branch-token</code>, to be more clear about its purpose. The
<code>branch-token</code> is the token that the action will use to
create and update the branch.</li>
<li>The action now handles requests that have been rate-limited by
GitHub. Requests hitting a primary rate limit will retry twice, for a
total of three attempts. Requests hitting a secondary rate limit will
not be retried.</li>
<li>The <code>pull-request-operation</code> output now returns
<code>none</code> when no operation was executed.</li>
<li>Removed deprecated output environment variable
<code>PULL_REQUEST_NUMBER</code>. Please use the
<code>pull-request-number</code> action output instead.</li>
</ul>
<h3>What's new</h3>
<ul>
<li>The action can now sign commits as <code>github-actions[bot]</code>
when using <code>GITHUB_TOKEN</code>, or your own bot when using <a
href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens">GitHub
App tokens</a>. See <a
href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#commit-signature-verification-for-bots">commit
signing</a> for details.</li>
<li>Action input <code>draft</code> now accepts a new value
<code>always-true</code>. This will set the pull request to draft status
when the pull request is updated, as well as on creation.</li>
<li>A new action input <code>maintainer-can-modify</code> indicates
whether <a
href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork">maintainers
can modify</a> the pull request. The default is <code>true</code>, which
retains the existing behaviour of the action.</li>
<li>A new output <code>pull-request-commits-verified</code> returns
<code>true</code> or <code>false</code>, indicating whether GitHub
considers the signature of the branch's commits to be verified.</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.36 to
18.19.39 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3000">peter-evans/create-pull-request#3000</a></li>
<li>build(deps-dev): bump ts-jest from 29.1.5 to 29.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3008">peter-evans/create-pull-request#3008</a></li>
<li>build(deps-dev): bump prettier from 3.3.2 to 3.3.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3018">peter-evans/create-pull-request#3018</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.0 to 29.2.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3019">peter-evans/create-pull-request#3019</a></li>
<li>build(deps-dev): bump eslint-plugin-prettier from 5.1.3 to 5.2.1 by
<a href="https://github.com/dependabot"><code>@​dependabot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3035">peter-evans/create-pull-request#3035</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.39 to
18.19.41 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3037">peter-evans/create-pull-request#3037</a></li>
<li>build(deps): bump undici from 6.19.2 to 6.19.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3036">peter-evans/create-pull-request#3036</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.2 to 29.2.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3038">peter-evans/create-pull-request#3038</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.41 to
18.19.42 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3070">peter-evans/create-pull-request#3070</a></li>
<li>build(deps): bump undici from 6.19.4 to 6.19.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3086">peter-evans/create-pull-request#3086</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.42 to
18.19.43 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3087">peter-evans/create-pull-request#3087</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.3 to 29.2.4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3088">peter-evans/create-pull-request#3088</a></li>
<li>build(deps): bump undici from 6.19.5 to 6.19.7 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3145">peter-evans/create-pull-request#3145</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.43 to
18.19.44 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3144">peter-evans/create-pull-request#3144</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3154">peter-evans/create-pull-request#3154</a></li>
<li>build(deps): bump undici from 6.19.7 to 6.19.8 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3213">peter-evans/create-pull-request#3213</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.44 to
18.19.45 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3214">peter-evans/create-pull-request#3214</a></li>
<li>Update distribution by <a
href="https://github.com/actions-bot"><code>@​actions-bot</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3221">peter-evans/create-pull-request#3221</a></li>
<li>build(deps-dev): bump eslint-import-resolver-typescript from 3.6.1
to 3.6.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3255">peter-evans/create-pull-request#3255</a></li>
<li>build(deps-dev): bump <code>@​types/node</code> from 18.19.45 to
18.19.46 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3254">peter-evans/create-pull-request#3254</a></li>
<li>build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3256">peter-evans/create-pull-request#3256</a></li>
<li>v7 - signed commits by <a
href="https://github.com/peter-evans"><code>@​peter-evans</code></a> in
<a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/rustycl0ck"><code>@​rustycl0ck</code></a> made
their first contribution in <a
href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0">https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0</a></p>
<h2>Create Pull Request v6.1.0</h2>
<p> Adds <code>pull-request-branch</code> as an action output.</p>
<h2>What's Changed</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="4320041ed3"><code>4320041</code></a>
feat: signed commits (v7) (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3057">#3057</a>)</li>
<li><a
href="0c2a66fe4a"><code>0c2a66f</code></a>
build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3256">#3256</a>)</li>
<li><a
href="17121bc5b5"><code>17121bc</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.45 to
18.19.46 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3254">#3254</a>)</li>
<li><a
href="87b5d6d564"><code>87b5d6d</code></a>
build(deps-dev): bump eslint-import-resolver-typescript (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3255">#3255</a>)</li>
<li><a
href="00897e0bc2"><code>00897e0</code></a>
build: update distribution (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3221">#3221</a>)</li>
<li><a
href="4cfc1fc717"><code>4cfc1fc</code></a>
build(deps-dev): bump <code>@​types/node</code> from 18.19.44 to
18.19.45 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3214">#3214</a>)</li>
<li><a
href="cb4ed6491a"><code>cb4ed64</code></a>
build(deps): bump undici from 6.19.7 to 6.19.8 (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3213">#3213</a>)</li>
<li><a
href="4eb90b7bc7"><code>4eb90b7</code></a>
ci: separate test suite commands in pr comment</li>
<li><a
href="5308ecb864"><code>5308ecb</code></a>
ci: add sign-commits flag to test suite comment</li>
<li><a
href="ba864ad40c"><code>ba864ad</code></a>
build: update distribution (<a
href="https://redirect.github.com/peter-evans/create-pull-request/issues/3154">#3154</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/peter-evans/create-pull-request/compare/v6...v7">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=6&new-version=7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-04 08:24:54 +02:00
github-actions[bot]
45c3a792e7 [Scheduled] Update dependencies (#557)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-09-01 09:59:18 +02:00
github-actions[bot]
f1bc6f8e5c [Scheduled] Update dependencies (#218)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-09-01 09:42:46 +02:00
David Barroso
b7b6a34753 fix: minor improvements to sliding window (#556) 2024-08-31 17:06:11 +02:00
David Barroso
f02b109c00 feat: migrate /user/password to go (#555)
Fixes https://github.com/nhost/nhost/issues/2847
2024-08-30 13:46:03 +02:00
David Barroso
05ba244030 chore: ci: hotfix for releases 2024-08-29 17:05:39 +02:00
David Barroso
32bec88d4c ci: hotfix for release 2024-08-29 16:55:25 +02:00
David Barroso
aa51d402bd chore: ci: standardize (#217) 2024-08-29 16:31:42 +02:00
Tchoupinax
1e6c29f606 fix: correctly display error message when metadata migration fails (#551) 2024-08-29 14:33:20 +02:00
David Barroso
bdccfffc16 chore: ci: a few more improvements (#554) 2024-08-29 14:04:33 +02:00
David Barroso
b2df24adb6 ci: improvements (#553) 2024-08-29 10:32:34 +02:00
David Barroso
4f749fad08 chore: simplify CI and remove need for secrets 2024-08-29 09:37:01 +02:00
David Barroso
36837b13d1 feat: implement rate-limiter (#543) 2024-08-26 19:28:04 +02:00
Hassan Ben Jobrane
66bab982fb feat: improve email templates (#548)
### **PR Type**
enhancement, documentation


___

### **Description**
- Introduced new email templates for various actions such as email
verification, password reset, and passwordless sign-in using
`@react-email/components`.
- Implemented a script to automate the generation of email templates for
different locales.
- Updated the test suite to enhance email template rendering and added
logging for debugging.
- Added documentation with instructions on generating emails for new
locales.
- Updated package scripts and dependencies to support email template
generation and development.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>6
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>templates_test.go</strong><dd><code>Enhance email
template rendering in tests</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>

go/notifications/templates_test.go

<li>Updated email template rendering in tests.<br> <li> Added logging
for rendered email body.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-056a4946b92734130bb1a485eac9a137852153d45ea9298068637b6920cc24df">+51/-3</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>email-confirm-change.tsx</strong><dd><code>Add email
template for confirming email change</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

email-templates/generator/email-confirm-change.tsx

<li>Added new email template for confirming email change.<br> <li>
Utilized <code>@react-email/components</code> for structure.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-b950e0673e8b102efa9a30f6b438656dde6cf43ce05e1c03cc62a6cc2696c4f1">+129/-0</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>email-verify.tsx</strong><dd><code>Add email template
for email verification</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

email-templates/generator/email-verify.tsx

<li>Added new email template for email verification.<br> <li> Utilized
<code>@react-email/components</code> for structure.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-0b90eaf1f2fa63108b5338f9985dd86db0e045adbad3fc87c407eb289a01d05d">+127/-0</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>password-reset.tsx</strong><dd><code>Add email template
for password reset</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

email-templates/generator/password-reset.tsx

<li>Added new email template for password reset.<br> <li> Utilized
<code>@react-email/components</code> for structure.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-8b70edaddf23793449e62103ebff6e73f2cafc32f9afefde28d2205d9f98fc97">+127/-0</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>render-emails.ts</strong><dd><code>Implement email
rendering script for locales</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

email-templates/generator/render-emails.ts

<li>Implemented script to render email templates for different
locales.<br> <li> Integrated prettier for formatting HTML output.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-ba11da88a3c8688af88b0b0e6a6ea5a123873f830b4ab72080b37666e18ac1f3">+73/-0</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>signin-passwordless.tsx</strong><dd><code>Add email
template for passwordless sign-in</code>&nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>

email-templates/generator/signin-passwordless.tsx

<li>Added new email template for passwordless sign-in.<br> <li> Utilized
<code>@react-email/components</code> for structure.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-aca020dbe4b94c3b2e6a69b8576123a5944eb90bd3a622413bc9d45c7bc8ed4f">+127/-0</a>&nbsp;
</td>

</tr>                    

</table></details></td></tr><tr><td><strong>Documentation</strong></td><td><details><summary>1
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>README.md</strong><dd><code>Add README for email
generation instructions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

email-templates/generator/README.md

<li>Added instructions for generating emails for new locales.<br> <li>
Provided example command for generating German locale emails.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-a28195d810c847e5307d897b899ae949c086c91734f9acd02c85801c6305d817">+23/-0</a>&nbsp;
&nbsp; </td>

</tr>                    

</table></details></td></tr><tr><td><strong>Dependencies</strong></td><td><details><summary>2
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>package.json</strong><dd><code>Update package scripts
and dependencies for email generation</code></dd></summary>
<hr>

package.json

<li>Added new scripts for email development and generation.<br> <li>
Updated dependencies to include
<code>@react-email/components</code>.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+4/-0</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>pnpm-lock.yaml</strong><dd><code>Update lock file for
new email dependencies</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

pnpm-lock.yaml

<li>Updated lock file with new dependencies.<br> <li> Included
<code>@react-email/components</code> and related packages.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/548/files#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bb">+694/-55</a></td>

</tr>                    
</table></details></td></tr><tr><td><strong>Configuration
changes</strong></td><td><details><summary>1 files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>tsconfig.json</strong><dd><code>Configure TypeScript
for React JSX</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>

tsconfig.json

- Added JSX configuration for React.



</details>


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

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

___

> 💡 **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools
and their descriptions
2024-08-20 15:26:50 +01:00
Hassan Ben Jobrane
74803d46ef chore: override versions for axios and ws to fix vulnerabilities (#549)
### **PR Type**
enhancement, dependencies


___

### **Description**
- Updated the `axios` package version constraints to `>=1.7.4` to
address security vulnerabilities.
- Modified the `ws` package version constraints to include specific
versions to fix vulnerabilities.



___



### **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>package.json</strong><dd><code>Override versions for
axios and ws to address vulnerabilities</code></dd></summary>
<hr>

package.json

<li>Updated the version constraints for <code>axios</code> to
<code>>=1.7.4</code>.<br> <li> Updated the version constraints for
<code>ws</code> to multiple specific versions.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/549/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519">+5/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    
</table></td></tr><tr><td><strong>Additional files
(token-limit)</strong></td><td><table>
<tr>
  <td>
    <details>
<summary><strong>pnpm-lock.yaml</strong><dd><code>...</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; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>

pnpm-lock.yaml

...



</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/549/files#diff-32824c984905bb02bc7ffcef96a77addd1f1602cff71a11fbbfdd7f53ee026bb">+8010/-9737</a></td>

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

___

> 💡 **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools
and their descriptions
2024-08-16 13:52:42 +01:00
Francesco Manzali
189ea758be fix: Forward OAuth error to the client (#541)
### **User description**
Previously, if the OAuth sign-in failed due to signup being disabled,
the error was not being forwarded back to the client, contrary to what
happens for all other errors. This PR fixes that.

## How to reproduce
1. Set `AUTH_DISABLE_SIGNUP=true` 
2. Attempt to sign-in via OAuth with a user that does not exist in the
database, specifying a `redirectTo` URL.

## Expected
The user should be redirected to `redirectTo`, with the `error` as
search param.

## What happens
No redirect happens, and the end user will see the error
`{"status":403,"message":"Sign up is
disabled.","error":"signup-disabled"}`

## The issue
In `/oauth/index.ts`, `sendError()` is called without the `redirectTo`
and `forwardRedirection` arguments, so the `signup-disabled` error is
not forwarded to the app.

## The fix
Specify the `redirectTo` and `forwardRedirection` when calling
`sendError()` (as it is done for all other errors).


___

### **PR Type**
Bug fix


___

### **Description**
- Fixed an issue where the OAuth `signup-disabled` error was not being
forwarded to the client with the appropriate redirection parameters.
- Added `redirectTo` and `forwardRedirection` arguments to the
`sendError` function call for the `signup-disabled` error in
`src/routes/oauth/index.ts`.



___



### **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>index.ts</strong><dd><code>Forward OAuth
signup-disabled error with redirection parameters</code></dd></summary>
<hr>

src/routes/oauth/index.ts

<li>Added <code>redirectTo</code> and <code>forwardRedirection</code>
parameters to the <code>sendError</code> <br>function call for the
<code>signup-disabled</code> error.<br>


</details>


  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/541/files#diff-377b11b1cf0052db32d2d519ffb6ac36c496acf967f7c99c8a18acb45fc13b28">+1/-1</a>&nbsp;
&nbsp; &nbsp; </td>

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

___

> 💡 **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools
and their descriptions

Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-08-07 09:55:39 +02:00
David Barroso
4993f9e548 fix: restrict display name to avoid urls, spam, html tags, etc. (#545) 2024-08-07 09:13:25 +02:00
David Barroso
c98a3beaad fix: set password limit to 50 to avoid reaching bcrypt limit of 72 bytes (#544) 2024-08-06 16:44:36 +02:00
github-actions[bot]
20ccc6cde0 [Scheduled] Update dependencies (#538)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-08-03 20:30:02 +02:00
David Barroso
4dd8c52cb7 chore: ci: increase timeout 2024-08-03 15:42:03 +02:00
github-actions[bot]
218a310641 [Scheduled] Update dependencies (#215)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-08-03 14:21:34 +02:00
David Barroso
63130b84f5 chore: increase github actions timeout (#546) 2024-07-31 18:02:22 +02:00
David Barroso
8e8275240c chore: nodejs: remove migrated endpoints (#537)
### **PR Type**
Enhancement, Other


___

### **Description**
- Removed OpenAPI route setup and related schema definitions.
- Removed various routes and handlers including Personal Access Token
(PAT), email-password sign-in, passwordless email sign-in, and sign-up
routes.
- Cleaned up middleware and route usage in the main application file.



___



### **Changes walkthrough** 📝
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>22
files</summary><table>
<tr>
  <td>
    <details>
<summary><strong>app.ts</strong><dd><code>Remove OpenAPI route and clean
up middleware usage</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; </dd></summary>
<hr>
      
src/app.ts

<li>Removed the import and usage of <code>addOpenApiRoute</code>.<br>
<li> Cleaned up middleware and route usage.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-841254fe75488c1bd4cd7f68f00b4be0e48dcfbc4a16b45847b68295e0e3b27b">+0/-3</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove OpenAPI route setup
and schema definitions</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>
      
src/openapi/index.ts

<li>Deleted the entire file which contained OpenAPI route setup and
schema <br>definitions.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-5cad5114d4c277a6989e57f1e8a1fd2e0c38d965cf2c9703a021d748e0f609ec">+0/-119</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>responses.ts</strong><dd><code>Remove OpenAPI response
models</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;
</dd></summary>
<hr>
      
src/openapi/responses.ts

<li>Deleted the entire file which contained response models for OpenAPI
<br>schemas.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-d184ef3f0524c1cc5244179f78722a43b2c1cb4d36911c49f03f868bba15b5ed">+0/-66</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove PAT and sign-up
routes</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;
</dd></summary>
<hr>
      
src/routes/index.ts

- Removed imports and usage of `patRouter` and `signUpRouter`.



</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-4c1a276a826a5147689418cdbf9bde24c8326cedb30a61144fe7867bd99113ef">+0/-4</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove Personal Access Token
(PAT) route</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>
      
src/routes/pat/index.ts

<li>Deleted the entire file which contained the Personal Access Token
<br>(PAT) route.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-0cab04d0c3bdd1b5644679487264bae0931d9a2113af26dc7236bf3977da7137">+0/-26</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>pat.ts</strong><dd><code>Remove PAT handler and
schema</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;
</dd></summary>
<hr>
      
src/routes/pat/pat.ts

<li>Deleted the entire file which contained the handler and schema for
<br>creating PATs.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-9b5f0736fc33aeaf1c1f2f9c91e4356fb9477b5796822ae2521ea1d688dd0e3a">+0/-66</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>email-password.ts</strong><dd><code>Remove
email-password sign-in handler and schema</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signin/email-password.ts

<li>Deleted the entire file which contained the email-password sign-in
<br>handler and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-9417570363ed2b7f56a564c7f865bc4a32f278ec0e92f6b15a14deb2407f8fc4">+0/-55</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove email-password, PAT,
and passwordless email sign-in routes</code></dd></summary>
<hr>
      
src/routes/signin/index.ts

<li>Removed imports and usage of email-password, PAT, and passwordless
<br>email sign-in handlers and schemas.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-26afd2e4ccfcac5d8a5fdbd1312ac77bfa6d2269f06b7180b4ca75c8d523d642">+0/-53</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>email.ts</strong><dd><code>Remove passwordless email
sign-in handler and schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>
      
src/routes/signin/passwordless/email.ts

<li>Deleted the entire file which contained the passwordless email
sign-in <br>handler and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-93f300e99bd16f0fbe27fb8630f7878315c3796b16f02d5df28422b657c9bb96">+0/-134</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove passwordless email
sign-in export</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>
      
src/routes/signin/passwordless/index.ts

- Removed export of passwordless email sign-in.



</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-808cfd9662f97c34ebc1c6ba7db98265192e9a36445601a5fd10b87c59790737">+0/-1</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>pat.ts</strong><dd><code>Remove PAT sign-in handler and
schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signin/pat.ts

<li>Deleted the entire file which contained the PAT sign-in handler and
<br>schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-8c3fb3ef6d84d16f0cd0c84e05c0fb8175bd93342c3ae3c5f9c41e90b4c9a03b">+0/-60</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>email-password.ts</strong><dd><code>Remove
email-password sign-up handler and schema</code>&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signup/email-password.ts

<li>Deleted the entire file which contained the email-password sign-up
<br>handler and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-f71930f7b3477cef0c5561206d29d9c81dca34fab5051645759ed61a5fb5ddee">+0/-54</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove sign-up
routes</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; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signup/index.ts

- Deleted the entire file which contained the sign-up routes.



</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-922b92cae424237ada9ba6f2d2c44862d16a7985f5fcf35126de6d69d1fa5a68">+0/-66</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove WebAuthn sign-up and
verification exports</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signup/webauthn/index.ts

- Removed exports for WebAuthn sign-up and verification.



</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-49834b0a068a62d5ec6455a9bcd1087eba9ea5542e324aa5a7b8ae493a9d5047">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>signup.ts</strong><dd><code>Remove WebAuthn sign-up
handler and schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>
      
src/routes/signup/webauthn/signup.ts

<li>Deleted the entire file which contained the WebAuthn sign-up handler
<br>and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-faad8e77c59dd1b356e6599e005090b275b3e5c4eedc5f2f0c5bba6dfe0314d5">+0/-82</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>verify.ts</strong><dd><code>Remove WebAuthn sign-up
verification handler and schema</code>&nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/signup/webauthn/verify.ts

<li>Deleted the entire file which contained the WebAuthn sign-up
<br>verification handler and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-e02c38f248f50a4ea4e1dcb68f788d02a24689cc445b69f7c0d3f7e27c91bf87">+0/-162</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove token refresh
route</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; </dd></summary>
<hr>
      
src/routes/token/index.ts

- Removed import and usage of token refresh handler and schema.



</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-c2bb5010a945faf6edfb700cde9fd283e19df6130afda9c2264e83b70267304c">+0/-12</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>deanonymize.ts</strong><dd><code>Remove user
deanonymize handler and schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</dd></summary>
<hr>
      
src/routes/user/deanonymize.ts

<li>Deleted the entire file which contained the user deanonymize handler
<br>and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-90d734e80e04d31ddcdaedc256d9a9cf5a70b0396a8e371214a55095741b8be6">+0/-53</a>&nbsp;
&nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>change.ts</strong><dd><code>Remove user email change
handler and schema</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/user/email/change.ts

<li>Deleted the entire file which contained the user email change
handler <br>and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-66691a14110253ef0e405ab918f81ed4c836e4a63824ee04759755bca0089199">+0/-112</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove user email change and
verification exports</code>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </dd></summary>
<hr>
      
src/routes/user/email/index.ts

<li>Removed exports for user email change and send verification email
<br>handlers.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-bdbd3726efe1ea00a547de3a90163d84f23c276ebfbfab7e63357708e0f57b5d">+0/-2</a>&nbsp;
&nbsp; &nbsp; </td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>send-verification-email.ts</strong><dd><code>Remove
user email send verification email handler and
schema</code></dd></summary>
<hr>
      
src/routes/user/email/send-verification-email.ts

<li>Deleted the entire file which contained the user email send
<br>verification email handler and schema.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-1e9502c3a3c4c4fa2454210e4fe46bb2623ce9505fe163766b0be11a6d8ce4a7">+0/-106</a>&nbsp;
</td>

</tr>                    

<tr>
  <td>
    <details>
<summary><strong>index.ts</strong><dd><code>Remove user email, password
reset, and deanonymize routes</code></dd></summary>
<hr>
      
src/routes/user/index.ts

<li>Removed imports and usage of user email change, send verification
<br>email, password reset, and deanonymize handlers and schemas.<br>


</details>
    

  </td>
<td><a
href="https://github.com/nhost/hasura-auth/pull/537/files#diff-14d43bc8570c6586d8a64c92ea9fe4ddd2a6fd85db68a8d0de8f7292c1476f36">+0/-73</a>&nbsp;
&nbsp; </td>

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

___

> 💡 **PR-Agent usage**:
>Comment `/help` on the PR to get a list of all available PR-Agent tools
and their descriptions
2024-07-03 11:14:04 +02:00
David Barroso
c48e722676 fix: nodejs: remove helmet (#535) 2024-06-27 10:05:05 +02:00
David Barroso
4f5b2e124b chore: fix CI 2024-06-26 19:42:46 +02:00
David Barroso
f8ca298012 chore: update CI 2024-06-20 08:51:35 +02:00
dependabot[bot]
3bc6703f17 chore: bump actions/checkout from 2 to 4 (#530)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to
4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node20 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li>Support fetching without the --progress option by <a
href="https://github.com/simonbaird"><code>@​simonbaird</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
<li>Release 4.0.0 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li><a
href="https://github.com/simonbaird"><code>@​simonbaird</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p>
<h2>v3.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Mark test scripts with Bash'isms to be run via Bash by <a
href="https://github.com/dscho"><code>@​dscho</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li>
<li>Add option to fetch tags even if fetch-depth &gt; 0 by <a
href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li>Release 3.6.0 by <a
href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li><a
href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p>
<h2>v3.5.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Checkout Issue in self hosted runner due to faulty submodule
check-ins by <a
href="https://github.com/megamanics"><code>@​megamanics</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li>Fix typos found by codespell by <a
href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li>Add support for sparse checkouts by <a
href="https://github.com/dscho"><code>@​dscho</code></a> and <a
href="https://github.com/dfdez"><code>@​dfdez</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
<li>Release v3.5.3 by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/megamanics"><code>@​megamanics</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li><a
href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li><a href="https://github.com/dfdez"><code>@​dfdez</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p>
<h2>v3.5.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Use correct API url / endpoint in GHES by <a
href="https://github.com/fhammerl"><code>@​fhammerl</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a>
based on <a
href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a>
by <a href="https://github.com/1newsr"><code>@​1newsr</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p>
<h2>v3.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve checkout performance on Windows runners by upgrading
<code>@​actions/github</code> dependency by <a
href="https://github.com/BrettDong"><code>@​BrettDong</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/BrettDong"><code>@​BrettDong</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
<li>README: Suggest <code>user.email</code> to be
<code>41898282+github-actions[bot]@users.noreply.github.com</code> by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1707">actions/checkout#1707</a></li>
</ul>
<h2>v4.1.4</h2>
<ul>
<li>Disable <code>extensions.worktreeConfig</code> when disabling
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1692">actions/checkout#1692</a></li>
<li>Add dependabot config by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1688">actions/checkout#1688</a></li>
<li>Bump the minor-actions-dependencies group with 2 updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1693">actions/checkout#1693</a></li>
<li>Bump word-wrap from 1.2.3 to 1.2.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1643">actions/checkout#1643</a></li>
</ul>
<h2>v4.1.3</h2>
<ul>
<li>Check git version before attempting to disable
<code>sparse-checkout</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1656">actions/checkout#1656</a></li>
<li>Add SSH user parameter by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1685">actions/checkout#1685</a></li>
<li>Update <code>actions/checkout</code> version in
<code>update-main-version.yml</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1650">actions/checkout#1650</a></li>
</ul>
<h2>v4.1.2</h2>
<ul>
<li>Fix: Disable sparse checkout whenever <code>sparse-checkout</code>
option is not present <a
href="https://github.com/dscho"><code>@​dscho</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1598">actions/checkout#1598</a></li>
</ul>
<h2>v4.1.1</h2>
<ul>
<li>Correct link to GitHub Docs by <a
href="https://github.com/peterbe"><code>@​peterbe</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1511">actions/checkout#1511</a></li>
<li>Link to release page from what's new section by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1514">actions/checkout#1514</a></li>
</ul>
<h2>v4.1.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1396">Add
support for partial checkout filters</a></li>
</ul>
<h2>v4.0.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1067">Support
fetching without the --progress option</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1436">Update to
node20</a></li>
</ul>
<h2>v3.6.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark
test scripts with Bash'isms to be run via Bash</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/579">Add
option to fetch tags even if fetch-depth &gt; 0</a></li>
</ul>
<h2>v3.5.3</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1196">Fix:
Checkout fail in self-hosted runners when faulty submodule are
checked-in</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix
typos found by codespell</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="692973e3d9"><code>692973e</code></a>
Prepare 4.1.7 release (<a
href="https://redirect.github.com/actions/checkout/issues/1775">#1775</a>)</li>
<li><a
href="6ccd57f4c5"><code>6ccd57f</code></a>
Pin actions/checkout's own workflows to a known, good, stable version.
(<a
href="https://redirect.github.com/actions/checkout/issues/1776">#1776</a>)</li>
<li><a
href="b17fe1e4d5"><code>b17fe1e</code></a>
Handle hidden refs (<a
href="https://redirect.github.com/actions/checkout/issues/1774">#1774</a>)</li>
<li><a
href="b80ff79f17"><code>b80ff79</code></a>
Bump actions/checkout from 3 to 4 (<a
href="https://redirect.github.com/actions/checkout/issues/1697">#1697</a>)</li>
<li><a
href="b1ec3021b8"><code>b1ec302</code></a>
Bump the minor-npm-dependencies group across 1 directory with 4 updates
(<a
href="https://redirect.github.com/actions/checkout/issues/1739">#1739</a>)</li>
<li><a
href="a5ac7e51b4"><code>a5ac7e5</code></a>
Update for 4.1.6 release (<a
href="https://redirect.github.com/actions/checkout/issues/1733">#1733</a>)</li>
<li><a
href="24ed1a3528"><code>24ed1a3</code></a>
Check platform for extension (<a
href="https://redirect.github.com/actions/checkout/issues/1732">#1732</a>)</li>
<li><a
href="44c2b7a8a4"><code>44c2b7a</code></a>
README: Suggest <code>user.email</code> to be
`41898282+github-actions[bot]<a
href="https://github.com/users"><code>@​users</code></a>.norepl...</li>
<li><a
href="8459bc0c7e"><code>8459bc0</code></a>
Bump actions/upload-artifact from 2 to 4 (<a
href="https://redirect.github.com/actions/checkout/issues/1695">#1695</a>)</li>
<li><a
href="3f603f6d5e"><code>3f603f6</code></a>
Bump actions/setup-node from 1 to 4 (<a
href="https://redirect.github.com/actions/checkout/issues/1696">#1696</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/checkout/compare/v2...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=2&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-14 11:48:21 +02:00
David Barroso
05ab45b5b8 fix: remove email from required fields as some users may not have one (#529)
Fixes #526
2024-06-13 14:35:02 +02:00
David Barroso
067dd7b761 chore: fix ci 2024-06-13 13:25:32 +02:00
David Barroso
78701f6521 chore: update nixops and allow running CI with secrets for contributors (#528)
CI is broken due to the pull_request_target... won't be fixed until it
is merged.
2024-06-13 12:21:08 +02:00
Boris Bliznioukov
316e0efaa0 feat: Add date to email headers in Send function (#527)
Implement 'Date' header to comply with email RFC standards and enhance
deliverability by satisfying spam filters.
2024-06-13 08:08:39 +02:00
David Barroso
23273dec3f chore: update pull_request events to pull_request_target 2024-06-12 11:15:25 +02:00
github-actions[bot]
eccc7dcd3d [Scheduled] Update dependencies (#524)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-06-03 15:58:47 +02:00
github-actions[bot]
c2c86d5b43 [Scheduled] Update dependencies (#212)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-06-02 22:44:37 +02:00
David Barroso
155357345a fix: allow using a different connection string for migrations (#521) 2024-05-22 15:20:57 +02:00
dependabot[bot]
1417ea7209 chore: bump cachix/cachix-action from 14 to 15 (#211)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action)
from 14 to 15.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/cachix-action/releases">cachix/cachix-action's
releases</a>.</em></p>
<blockquote>
<h2>cachix-action-v15</h2>
<h2>What's Changed</h2>
<ul>
<li>Pass <code>cachixArgs</code> to the daemon by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/cachix-action/pull/177">cachix/cachix-action#177</a></li>
<li>Support path filtering when using the daemon by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/cachix-action/pull/182">cachix/cachix-action#182</a></li>
<li>Skip prep steps if using <code>pathsToPush</code> by <a
href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/cachix-action/pull/180">cachix/cachix-action#180</a></li>
<li>store-scan: improve error handling when listing the store fails by
<a href="https://github.com/sandydoo"><code>@​sandydoo</code></a> in <a
href="https://redirect.github.com/cachix/cachix-action/pull/183">cachix/cachix-action#183</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cachix/cachix-action/compare/v14...v15">https://github.com/cachix/cachix-action/compare/v14...v15</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ad2ddac53f"><code>ad2ddac</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/184">#184</a>
from cachix/dependabot/github_actions/cachix/install-...</li>
<li><a
href="403a1b5dad"><code>403a1b5</code></a>
chore(deps): bump cachix/install-nix-action from 26 to 27</li>
<li><a
href="132bc971f5"><code>132bc97</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/183">#183</a>
from cachix/fix-179</li>
<li><a
href="662a8831be"><code>662a883</code></a>
store-scan: use runner or os temp dirs</li>
<li><a
href="08dcf70a39"><code>08dcf70</code></a>
store-scan: improve error handling when store listing fails</li>
<li><a
href="991af99d4b"><code>991af99</code></a>
Skip prep steps if using <code>pathsToPush</code> (<a
href="https://redirect.github.com/cachix/cachix-action/issues/180">#180</a>)</li>
<li><a
href="74587ee920"><code>74587ee</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/182">#182</a>
from cachix/support-daemon-push-filter</li>
<li><a
href="5ee8857e76"><code>5ee8857</code></a>
Fix syntax</li>
<li><a
href="7431d10aca"><code>7431d10</code></a>
Use bash in post-build hook</li>
<li><a
href="ad440c0fec"><code>ad440c0</code></a>
Make <code>pushFilter</code> filter out just the positive matches</li>
<li>Additional commits viewable in <a
href="https://github.com/cachix/cachix-action/compare/v14...v15">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/cachix-action&package-manager=github_actions&previous-version=14&new-version=15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 09:51:33 +02:00
Hassan Ben Jobrane
6d2fcaf751 feat: allow deep links in redirectTo validation (#513) 2024-05-20 11:17:19 +01:00
David Barroso
dc5d3748ae fix: test 2024-05-16 18:04:35 +02:00
David Barroso
a893f8e093 fix: don't create a webauthn controller if not configured (#519) 2024-05-16 17:49:01 +02:00
David Barroso
92b3d6662a chore: update GO version due to CVE (#210) 2024-05-14 15:24:25 +02:00
David Barroso
d0b75b6d87 fix: backward compatibility changes to matching of redirect URLs (#518) 2024-05-10 13:04:05 +02:00
David Barroso
f1ecd32104 chore: remove typescript message from README.md (#517) 2024-05-08 12:37:33 +02:00
dependabot[bot]
43889c9809 chore: bump nixbuild/nix-quick-install-action from 27 to 28 (#516)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 27 to 28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v28</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove all Nix versions that are vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.</p>
</li>
<li>
<p>Bump minor Nix versions: 2.18.1 -&gt; 2.18.2</p>
</li>
<li>
<p>Add Nix versions: 2.20.5, 2.21.0</p>
</li>
<li>
<p>Bump default Nix version: 2.19.3 -&gt; 2.21.0</p>
</li>
</ul>
<h2>Supported Nix Versions on Linux Runners</h2>
<ul>
<li>2.21.0</li>
<li>2.20.5</li>
<li>2.19.3</li>
<li>2.18.2</li>
<li>2.3.17</li>
</ul>
<h2>Supported Nix Versions on MacOS Runners</h2>
<ul>
<li>2.21.0</li>
<li>2.20.5</li>
<li>2.19.3</li>
<li>2.18.2</li>
<li>2.3.17</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v28</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove all Nix versions that are vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.</p>
</li>
<li>
<p>Bump minor Nix versions: 2.18.1 -&gt; 2.18.2</p>
</li>
<li>
<p>Add Nix versions: 2.20.5, 2.21.0</p>
</li>
<li>
<p>Bump default Nix version: 2.19.3 -&gt; 2.21.0</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="60e9c39264"><code>60e9c39</code></a>
Release v28</li>
<li><a
href="2eeac83915"><code>2eeac83</code></a>
Downgrade nixpkgs because of MacOS build error</li>
<li><a
href="0ff55bf498"><code>0ff55bf</code></a>
Remove Nix 2.22 temporarily</li>
<li><a
href="49704930ae"><code>4970493</code></a>
Bump Nix versions</li>
<li><a
href="f188189575"><code>f188189</code></a>
cicd: Fix Nix version</li>
<li><a
href="ac5ac3025c"><code>ac5ac30</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/42">#42</a>
from nixbuild/nix_2_2x</li>
<li><a
href="de77414845"><code>de77414</code></a>
cicd: Try fix test that fails on MacOS 11/nix 2.21.0</li>
<li><a
href="b657bdb7f8"><code>b657bdb</code></a>
Add Nix 2.20.5 and 2.21.0</li>
<li><a
href="3e26077f8d"><code>3e26077</code></a>
Update README and workflows for v27</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v27...v28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=27&new-version=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-05-03 08:01:14 +02:00
David Barroso
1978f4f8d8 fix: modify migrations to avoid writing in public schema (#515) 2024-05-03 08:00:20 +02:00
David Barroso
279714c790 chore: fix CI 2024-05-03 07:57:18 +02:00
dependabot[bot]
2cc8616288 chore: bump nixbuild/nix-quick-install-action from 27 to 28 (#206)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 27 to 28.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v28</h2>
<h2>Changes</h2>
<ul>
<li>
<p>Remove all Nix versions that are vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.</p>
</li>
<li>
<p>Bump minor Nix versions: 2.18.1 -&gt; 2.18.2</p>
</li>
<li>
<p>Add Nix versions: 2.20.5, 2.21.0</p>
</li>
<li>
<p>Bump default Nix version: 2.19.3 -&gt; 2.21.0</p>
</li>
</ul>
<h2>Supported Nix Versions on Linux Runners</h2>
<ul>
<li>2.21.0</li>
<li>2.20.5</li>
<li>2.19.3</li>
<li>2.18.2</li>
<li>2.3.17</li>
</ul>
<h2>Supported Nix Versions on MacOS Runners</h2>
<ul>
<li>2.21.0</li>
<li>2.20.5</li>
<li>2.19.3</li>
<li>2.18.2</li>
<li>2.3.17</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v28</p>
<h2>Changes</h2>
<ul>
<li>
<p>Remove all Nix versions that are vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.</p>
</li>
<li>
<p>Bump minor Nix versions: 2.18.1 -&gt; 2.18.2</p>
</li>
<li>
<p>Add Nix versions: 2.20.5, 2.21.0</p>
</li>
<li>
<p>Bump default Nix version: 2.19.3 -&gt; 2.21.0</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="60e9c39264"><code>60e9c39</code></a>
Release v28</li>
<li><a
href="2eeac83915"><code>2eeac83</code></a>
Downgrade nixpkgs because of MacOS build error</li>
<li><a
href="0ff55bf498"><code>0ff55bf</code></a>
Remove Nix 2.22 temporarily</li>
<li><a
href="49704930ae"><code>4970493</code></a>
Bump Nix versions</li>
<li><a
href="f188189575"><code>f188189</code></a>
cicd: Fix Nix version</li>
<li><a
href="ac5ac3025c"><code>ac5ac30</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/42">#42</a>
from nixbuild/nix_2_2x</li>
<li><a
href="de77414845"><code>de77414</code></a>
cicd: Try fix test that fails on MacOS 11/nix 2.21.0</li>
<li><a
href="b657bdb7f8"><code>b657bdb</code></a>
Add Nix 2.20.5 and 2.21.0</li>
<li><a
href="3e26077f8d"><code>3e26077</code></a>
Update README and workflows for v27</li>
<li>See full diff in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v27...v28">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=27&new-version=28)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-03 07:47:12 +02:00
github-actions[bot]
3456123991 asd (#512)
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-05-01 20:05:41 +02:00
github-actions[bot]
cd872682db [Scheduled] Update dependencies (#205)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-05-01 19:25:16 +02:00
David Barroso
8bb4dcfe83 fix: dont crash if users have no roles when refreshing token (#511)
* fix: dont crash if users have no roles when refreshing token

* asd
2024-04-30 16:38:17 +02:00
David Barroso
72d7e29a0f sad (#510) 2024-04-29 13:32:21 +02:00
David Barroso
16d336d6ac fix: sanitize subject/to before sending email (#509) 2024-04-29 13:32:12 +02:00
David Barroso
a6d3f8e9e5 fix: special treatment to custom claims for backwards compatibility #505 (#505) 2024-04-22 14:41:41 +02:00
David Barroso
4e7dcc98eb fix: remove as many RTTs to postgres as possible (#506) 2024-04-22 11:05:34 +02:00
David Barroso
7b6c5fbbb0 fix: grant: respect dynamic options (#503) 2024-04-12 10:23:57 +02:00
David Barroso
5bf4a95dfe fix: verify hostname during STARTTLS correctly (#504) 2024-04-12 10:23:38 +02:00
David Barroso
94dbc53159 build: lock execa to >=2.0.0 (#500)
Co-authored-by: Sumanth Chinthagunta <xmlking@gmail.com>
2024-04-08 13:52:01 +02:00
David Barroso
afab4da826 fix: go: minor fixes in /token endpoint (#501) 2024-04-08 13:51:49 +02:00
Nuno Pato
5ed6f9acf3 feat: go: migrate /token (#492) 2024-04-05 14:53:18 +02:00
David Barroso
e08950cfff fix: support SMTP over TLS (#498) 2024-04-04 16:33:58 +02:00
David Barroso
ed8edf338a fix: regression - return refreshTokenID alongside session as before (#496) 2024-04-04 16:22:10 +02:00
David Barroso
cf82693dd5 chore: update deps due to GO-2024-2687 (#497) 2024-04-04 12:34:59 +02:00
David Barroso
b7903c69ca fix: minor fixes to startup config (#495) 2024-04-03 13:22:12 +02:00
github-actions[bot]
e23a069a43 [Scheduled] Update dependencies (#203)
Dependencies updated

Note - If you see this PR and the checks haven't run, close and reopen
the PR. See
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-04-02 11:00:03 +02:00
github-actions[bot]
5cadff514f [Scheduled] Update dependencies (#493)
* Update dependencies

* pnpm audit

---------

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-04-02 10:47:07 +02:00
David Barroso
5523fec2b6 chore: fix: nix non-native build 2024-03-26 08:54:02 +01:00
David Barroso
642e82d35c fix: minor fixes (#490) 2024-03-23 08:47:45 +01:00
David Barroso
243efd12c7 feat: added integration with postmark (#484) 2024-03-22 16:14:20 +01:00
David Barroso
dd03035898 feat: go: migrate /signup/webauthn[/verify] (#487) 2024-03-22 16:00:36 +01:00
David Barroso
307873fec2 feat: go: migrate /user/deanonymize (#488) 2024-03-22 15:22:15 +01:00
David Barroso
5472bedaa1 feat: go: added middleware for elevated check (#489) 2024-03-22 14:56:19 +01:00
David Barroso
04b75ab193 feat: go: migrated /user/email/send-verification-email (#485) 2024-03-21 15:07:38 +01:00
David Barroso
b69719720c feat: allow connecting social logins to existing users even if emails don't match (#459)
* asd

* asd

* asd
2024-03-18 13:45:36 +01:00
David Barroso
f3a9283461 chore: go: refactor (#483) 2024-03-18 13:45:15 +01:00
dependabot[bot]
5024de8ecb chore: bump nixbuild/nix-quick-install-action from 26 to 27 (#201)
Bumps
[nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action)
from 26 to 27.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/releases">nixbuild/nix-quick-install-action's
releases</a>.</em></p>
<blockquote>
<h2>nixbuild/nix-quick-install-action@v27</h2>
<h2>Security Notice</h2>
<p>This release (and previous releases) includes Nix versions that are
vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.
The current default Nix version, 2.19.3, is not vulnerable. If you
select another Nix version you should use your own judgement to decide
if CVE-2024-27297 is applicable to your usage of Nix in your GitHub
Actions workflow.</p>
<p>The following Nix versions that are packaged with this action are
<strong>not</strong> vulnerable:</p>
<ul>
<li>2.19.3 (the default version)</li>
<li>2.18.1</li>
<li>2.3.17</li>
</ul>
<p>The above versions have been explicitly patched by the
<code>nixpkgs</code> maintainers.</p>
<p>The rest of the Nix versions provided by this action <strong>are
vulnerable</strong> to CVE-2024-27297.</p>
<p>In the next release of this action (v28), all vulnerable Nix versions
will be removed.</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.3.16 -&gt; 2.3.17</p>
</li>
<li>
<p>Add Nix versions: 2.17.1, 2.18.1, 2.19.3</p>
</li>
<li>
<p>Bump default Nix version: 2.16.2 -&gt; 2.19.3</p>
</li>
</ul>
<h2>Supported Nix Versions on Linux Runners</h2>
<ul>
<li>2.19.3</li>
<li>2.18.1</li>
<li>2.17.1</li>
<li>2.16.2</li>
<li>2.15.3</li>
<li>2.14.1</li>
<li>2.13.6</li>
<li>2.12.1</li>
<li>2.11.1</li>
<li>2.10.3</li>
<li>2.9.2</li>
<li>2.8.1</li>
<li>2.7.0</li>
<li>2.6.1</li>
<li>2.5.1</li>
<li>2.4</li>
<li>2.3.17</li>
<li>2.2.2</li>
<li>2.1.3</li>
<li>2.0.4</li>
</ul>
<h2>Supported Nix Versions on MacOS Runners</h2>
<ul>
<li>2.19.3</li>
<li>2.18.1</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE">nixbuild/nix-quick-install-action's
changelog</a>.</em></p>
<blockquote>
<p>v27</p>
<h2>Security Notice</h2>
<p>This release (and previous releases) includes Nix versions that are
vulnerable to <a
href="https://www.cve.org/CVERecord?id=CVE-2024-27297">CVE-2024-27297</a>.
The current default Nix version, 2.19.3, is not vulnerable. If you
select another Nix version you should use your own judgement to decide
if CVE-2024-27297 is applicable to your usage of Nix in your GitHub
Actions workflow.</p>
<p>The following Nix versions that are packaged with this action are
<strong>not</strong> vulnerable:</p>
<ul>
<li>2.19.3 (the default version)</li>
<li>2.18.1</li>
<li>2.3.17</li>
</ul>
<p>The above versions have been explicitly patched by the
<code>nixpkgs</code> maintainers.</p>
<p>The rest of the Nix versions provided by this action <strong>are
vulnerable</strong> to CVE-2024-27297.</p>
<p>In the next release of this action (v28), all vulnerable Nix versions
will be removed.</p>
<h2>Changes</h2>
<ul>
<li>
<p>Bump minor Nix versions: 2.3.16 -&gt; 2.3.17</p>
</li>
<li>
<p>Add Nix versions: 2.17.1, 2.18.1, 2.19.3</p>
</li>
<li>
<p>Bump default Nix version: 2.16.2 -&gt; 2.19.3</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d02dd28b62"><code>d02dd28</code></a>
Release v27</li>
<li><a
href="123ee16a4d"><code>123ee16</code></a>
Fix variable name</li>
<li><a
href="b35ae20573"><code>b35ae20</code></a>
Retry if db registration fails</li>
<li><a
href="483e6ef9a6"><code>483e6ef</code></a>
Bump nixpkgs revisions to get patches for CVE-2024-27297</li>
<li><a
href="eac9523d35"><code>eac9523</code></a>
Bump default Nix version from 2.16.2 to 2.19.3</li>
<li><a
href="e6c40657c4"><code>e6c4065</code></a>
Revert &quot;Add Nix 2.20.5 and 2.21.0&quot;</li>
<li><a
href="b83db0f5c0"><code>b83db0f</code></a>
Add Nix 2.20.5 and 2.21.0</li>
<li><a
href="896e4387e1"><code>896e438</code></a>
Merge pull request <a
href="https://redirect.github.com/nixbuild/nix-quick-install-action/issues/41">#41</a>
from deemp/master</li>
<li><a
href="0e337bef97"><code>0e337be</code></a>
fix(cicd): bump nix version</li>
<li><a
href="a17089ebbc"><code>a17089e</code></a>
chore: update nix versions</li>
<li>Additional commits viewable in <a
href="https://github.com/nixbuild/nix-quick-install-action/compare/v26...v27">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nixbuild/nix-quick-install-action&package-manager=github_actions&previous-version=26&new-version=27)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2024-03-18 11:16:48 +01:00
dependabot[bot]
6302971947 chore: bump nixbuild/nix-quick-install-action from 26 to 27 (#482)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 26 to 27.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v26...v27)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 11:03:35 +01:00
David Barroso
5406876129 feat: go: migrate /pat and /signin/pat (#481) 2024-03-15 12:57:50 +01:00
David Barroso
a56642846d feat: go: migrate /healthz and /version (#480)
* feat: go: migrate /healthz and /version

* asd

* asd
2024-03-15 12:17:22 +01:00
David Barroso
a094a463e7 feat: go: migrate /user/password/reset (#479) 2024-03-15 08:37:18 +01:00
David Barroso
a7f507ab94 feat: go: migrate /signin/passwordless/email (#478) 2024-03-15 08:12:53 +01:00
David Barroso
ca3a2087f1 feat: go: migrate /user/email/change (#477) 2024-03-15 08:09:48 +01:00
David Barroso
88038fbade feat: go: migrate /signin/email-password (#476) 2024-03-12 08:34:41 +01:00
David Barroso
45315c7de1 chore: node: update webauthn dependencies (#474) 2024-03-06 09:57:26 +01:00
David Barroso
d8915e54a3 fix: go: automatically use paths compatible with cli/prod (#473) 2024-03-05 15:07:31 +01:00
David Barroso
2373bd72cd fix: go: add default locale/roles to allowed list (#472) 2024-03-05 12:49:07 +01:00
David Barroso
8a471a7a77 migrate: /signup/email-password (#467) 2024-03-05 08:58:21 +01:00
David Barroso
ef2cc0810d chore: fix role to assume in gen update dependencies (#470)
* chore: fix role to assume in gen update dependencies

* asd

* Update dependencies (#471)

Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-03-01 14:02:54 +01:00
David Barroso
c8a7bcee75 chore: fix role to assume in gen update dependencies (#199)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dbarrosop <dbarrosop@users.noreply.github.com>
2024-03-01 14:02:35 +01:00
dependabot[bot]
4484269204 chore: bump github/codeql-action from 2 to 3 (#466)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 08:55:33 +01:00
David Barroso
8311fa9af2 feat: add golang entrypoint that acts as reverse-proxy when routes don't match (#464) 2024-02-16 08:47:59 +01:00
github-actions[bot]
6534613393 chore: update versions (#465)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-13 19:19:02 +01:00
David Barroso
0c52594654 feat: added AUTH_REQUIRE_ELEVATED_CLAIM to require elevated permissions for certain actions (#462) 2024-02-13 18:36:26 +01:00
github-actions[bot]
b865c27d05 chore: update versions (#461)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-06 13:49:11 +01:00
David Barroso
27aeca6a0f fix: replace helper.error with helper.message due to joi's breaking changes (#463) 2024-02-06 10:37:20 +01:00
David Barroso
843ea6b321 Create SECURITY.md 2024-02-06 10:15:16 +01:00
David Barroso
61aa87dbd2 Create SECURITY.md 2024-02-06 10:14:40 +01:00
dependabot[bot]
0d5f5ed0e1 chore: bump release-drafter/release-drafter from 5 to 6 (#198)
Bumps
[release-drafter/release-drafter](https://github.com/release-drafter/release-drafter)
from 5 to 6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/release-drafter/release-drafter/releases">release-drafter/release-drafter's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h1>What's Changed</h1>
<ul>
<li>Update Node.js to 20 (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1379">#1379</a>)
<a href="https://github.com/massongit"><code>@​massongit</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-drafter/release-drafter/compare/v5.25.0...v6.0.0">https://github.com/release-drafter/release-drafter/compare/v5.25.0...v6.0.0</a></p>
<h2>v6.0.0-beta.1</h2>
<p>Prerelease of v6, first release of the CLI, feel free to provide
feedback in the pull request: <a
href="https://redirect.github.com/release-drafter/release-drafter/pull/1204">release-drafter/release-drafter#1204</a></p>
<h2>v5.25.0</h2>
<h1>What's Changed</h1>
<h2>New</h2>
<ul>
<li>add prerelease increment behavior (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1303">#1303</a>)
<a href="https://github.com/neilime"><code>@​neilime</code></a></li>
<li>add latest input (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1348">#1348</a>)
<a href="https://github.com/o-mago"><code>@​o-mago</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-drafter/release-drafter/compare/v5.24.0...v5.25.0">https://github.com/release-drafter/release-drafter/compare/v5.24.0...v5.25.0</a></p>
<h2>v5.24.0</h2>
<h1>What's Changed</h1>
<h2>New</h2>
<ul>
<li>Add release version to github action output (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1300">#1300</a>)
<a
href="https://github.com/mehdihadeli"><code>@​mehdihadeli</code></a></li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>fix(release): strip prefix before comparing version (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1255">#1255</a>)
<a href="https://github.com/neilime"><code>@​neilime</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-drafter/release-drafter/compare/v5.23.0...v5.24.0">https://github.com/release-drafter/release-drafter/compare/v5.23.0...v5.24.0</a></p>
<h2>v5.23.0</h2>
<h1>What's Changed</h1>
<h2>New</h2>
<ul>
<li>Add <code>include-pre-releases</code> configuration option (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1302">#1302</a>)
<a
href="https://github.com/robbinjanssen"><code>@​robbinjanssen</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/release-drafter/release-drafter/compare/v5.22.0...v5.23.0">https://github.com/release-drafter/release-drafter/compare/v5.22.0...v5.23.0</a></p>
<h2>v5.22.0</h2>
<h1>What's Changed</h1>
<h2>New</h2>
<ul>
<li>Only use last full release when drafting (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1240">#1240</a>)
<a href="https://github.com/ssbarnea"><code>@​ssbarnea</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3f0f87098b"><code>3f0f870</code></a>
v6.0.0</li>
<li><a
href="80296b4fba"><code>80296b4</code></a>
Update Node.js to 20 (<a
href="https://redirect.github.com/release-drafter/release-drafter/issues/1379">#1379</a>)</li>
<li>See full diff in <a
href="https://github.com/release-drafter/release-drafter/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=release-drafter/release-drafter&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 08:47:54 +01:00
David Barroso
fcec7fabdf chore: update deps (#460) 2024-02-02 19:51:58 +01:00
David Barroso
93abd359a9 feat: added endpoint to "elevate" permissions using webauthn (#451) 2024-02-02 19:44:10 +01:00
David Barroso
43644e8062 chore: update dependencies (#197) 2024-02-01 17:07:57 +01:00
David Barroso
c5c23f14fd feat: replace custom C code with govips (#196)
We initially wrote our own C code because our benchmarking showed govips
used too much memory but now it seems to be the opposite. Their library
is also better than our custom code and it should fix #194 and #180
2024-01-26 13:58:14 +01:00
dependabot[bot]
e8e78dd422 chore: bump cachix/cachix-action from 13 to 14 (#192)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action)
from 13 to 14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/cachix-action/releases">cachix/cachix-action's
releases</a>.</em></p>
<blockquote>
<h2>cachix-action-v14</h2>
<p><a
href="https://blog.cachix.org/posts/2024-01-12-cachix-v1-7/">https://blog.cachix.org/posts/2024-01-12-cachix-v1-7/</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="18cf96c7c9"><code>18cf96c</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/166">#166</a>
from cachix/feature/daemon</li>
<li><a
href="467b7ad67e"><code>467b7ad</code></a>
daemon: fix support check in post run</li>
<li><a
href="c9fc59c798"><code>c9fc59c</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/161">#161</a>
from cachix/feature/daemon</li>
<li><a
href="e54c44ceb8"><code>e54c44c</code></a>
daemon: drop latest daemon installer</li>
<li><a
href="3a94faeceb"><code>3a94fae</code></a>
daemon: update tests</li>
<li><a
href="a7c8acb335"><code>a7c8acb</code></a>
daemon: add even more logging to trusted user logic</li>
<li><a
href="11a95a781d"><code>11a95a7</code></a>
daemon: resolve promise</li>
<li><a
href="608ce1e442"><code>608ce1e</code></a>
daemon: add debugging logs to trusted user logic</li>
<li><a
href="711a732439"><code>711a732</code></a>
daemon: fix reading trusted-users</li>
<li><a
href="8426524a2b"><code>8426524</code></a>
daemon: check for credentials early</li>
<li>Additional commits viewable in <a
href="https://github.com/cachix/cachix-action/compare/v13...v14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/cachix-action&package-manager=github_actions&previous-version=13&new-version=14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-26 13:02:03 +01:00
dependabot[bot]
5c4068dd74 chore: bump actions/cache from 3 to 4 (#195)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/releases">actions/cache's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update action to node20 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1284">actions/cache#1284</a></li>
<li>feat: save-always flag by <a
href="https://github.com/to-s"><code>@​to-s</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1242">actions/cache#1242</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1284">actions/cache#1284</a></li>
<li><a href="https://github.com/to-s"><code>@​to-s</code></a> made their
first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1242">actions/cache#1242</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3...v4.0.0">https://github.com/actions/cache/compare/v3...v4.0.0</a></p>
<h2>v3.3.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Cache v3.3.3 by <a
href="https://github.com/robherley"><code>@​robherley</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1302">actions/cache#1302</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/robherley"><code>@​robherley</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1302">actions/cache#1302</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3...v3.3.3">https://github.com/actions/cache/compare/v3...v3.3.3</a></p>
<h2>v3.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fixed readme with new segment timeout values by <a
href="https://github.com/kotewar"><code>@​kotewar</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1133">actions/cache#1133</a></li>
<li>Readme fixes by <a
href="https://github.com/kotewar"><code>@​kotewar</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1134">actions/cache#1134</a></li>
<li>Updated description of the lookup-only input for main action by <a
href="https://github.com/kotewar"><code>@​kotewar</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1130">actions/cache#1130</a></li>
<li>Change two new actions mention as quoted text by <a
href="https://github.com/bishal-pdMSFT"><code>@​bishal-pdMSFT</code></a>
in <a
href="https://redirect.github.com/actions/cache/pull/1131">actions/cache#1131</a></li>
<li>Update Cross-OS Caching tips by <a
href="https://github.com/pdotl"><code>@​pdotl</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1122">actions/cache#1122</a></li>
<li>Bazel example (Take <a
href="https://redirect.github.com/actions/cache/issues/2">#2</a>️⃣) by
<a href="https://github.com/vorburger"><code>@​vorburger</code></a> in
<a
href="https://redirect.github.com/actions/cache/pull/1132">actions/cache#1132</a></li>
<li>Remove actions to add new PRs and issues to a project board by <a
href="https://github.com/jorendorff"><code>@​jorendorff</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1187">actions/cache#1187</a></li>
<li>Consume latest toolkit and fix dangling promise bug by <a
href="https://github.com/chkimes"><code>@​chkimes</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1217">actions/cache#1217</a></li>
<li>Bump action version to 3.3.2 by <a
href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1236">actions/cache#1236</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/vorburger"><code>@​vorburger</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1132">actions/cache#1132</a></li>
<li><a
href="https://github.com/jorendorff"><code>@​jorendorff</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1187">actions/cache#1187</a></li>
<li><a href="https://github.com/chkimes"><code>@​chkimes</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1217">actions/cache#1217</a></li>
<li><a
href="https://github.com/bethanyj28"><code>@​bethanyj28</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/cache/pull/1236">actions/cache#1236</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3...v3.3.2">https://github.com/actions/cache/compare/v3...v3.3.2</a></p>
<h2>v3.3.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Reduced download segment size to 128 MB and timeout to 10 minutes by
<a href="https://github.com/kotewar"><code>@​kotewar</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1129">actions/cache#1129</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/cache/compare/v3...v3.3.1">https://github.com/actions/cache/compare/v3...v3.3.1</a></p>
<h2>v3.3.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Bug: Permission is missing in cache delete example by <a
href="https://github.com/kotokaze"><code>@​kotokaze</code></a> in <a
href="https://redirect.github.com/actions/cache/pull/1123">actions/cache#1123</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/cache/blob/main/RELEASES.md">actions/cache's
changelog</a>.</em></p>
<blockquote>
<h1>Releases</h1>
<h3>3.0.0</h3>
<ul>
<li>Updated minimum runner version support from node 12 -&gt; node
16</li>
</ul>
<h3>3.0.1</h3>
<ul>
<li>Added support for caching from GHES 3.5.</li>
<li>Fixed download issue for files &gt; 2GB during restore.</li>
</ul>
<h3>3.0.2</h3>
<ul>
<li>Added support for dynamic cache size cap on GHES.</li>
</ul>
<h3>3.0.3</h3>
<ul>
<li>Fixed avoiding empty cache save when no files are available for
caching. (<a
href="https://redirect.github.com/actions/cache/issues/624">issue</a>)</li>
</ul>
<h3>3.0.4</h3>
<ul>
<li>Fixed tar creation error while trying to create tar with path as
<code>~/</code> home folder on <code>ubuntu-latest</code>. (<a
href="https://redirect.github.com/actions/cache/issues/689">issue</a>)</li>
</ul>
<h3>3.0.5</h3>
<ul>
<li>Removed error handling by consuming actions/cache 3.0 toolkit, Now
cache server error handling will be done by toolkit. (<a
href="https://redirect.github.com/actions/cache/pull/834">PR</a>)</li>
</ul>
<h3>3.0.6</h3>
<ul>
<li>Fixed <a
href="https://redirect.github.com/actions/cache/issues/809">#809</a> -
zstd -d: no such file or directory error</li>
<li>Fixed <a
href="https://redirect.github.com/actions/cache/issues/833">#833</a> -
cache doesn't work with github workspace directory</li>
</ul>
<h3>3.0.7</h3>
<ul>
<li>Fixed <a
href="https://redirect.github.com/actions/cache/issues/810">#810</a> -
download stuck issue. A new timeout is introduced in the download
process to abort the download if it gets stuck and doesn't finish within
an hour.</li>
</ul>
<h3>3.0.8</h3>
<ul>
<li>Fix zstd not working for windows on gnu tar in issues <a
href="https://redirect.github.com/actions/cache/issues/888">#888</a> and
<a
href="https://redirect.github.com/actions/cache/issues/891">#891</a>.</li>
<li>Allowing users to provide a custom timeout as input for aborting
download of a cache segment using an environment variable
<code>SEGMENT_DOWNLOAD_TIMEOUT_MINS</code>. Default is 60 minutes.</li>
</ul>
<h3>3.0.9</h3>
<ul>
<li>Enhanced the warning message for cache unavailablity in case of
GHES.</li>
</ul>
<h3>3.0.10</h3>
<ul>
<li>Fix a bug with sorting inputs.</li>
<li>Update definition for restore-keys in README.md</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="13aacd865c"><code>13aacd8</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1242">#1242</a>
from to-s/main</li>
<li><a
href="53b35c5439"><code>53b35c5</code></a>
Merge branch 'main' into main</li>
<li><a
href="65b8989fab"><code>65b8989</code></a>
Merge pull request <a
href="https://redirect.github.com/actions/cache/issues/1284">#1284</a>
from takost/update-to-node-20</li>
<li><a
href="d0be34d544"><code>d0be34d</code></a>
Fix dist</li>
<li><a
href="66cf064d47"><code>66cf064</code></a>
Merge branch 'main' into update-to-node-20</li>
<li><a
href="1326563738"><code>1326563</code></a>
Merge branch 'main' into main</li>
<li><a
href="e71876755e"><code>e718767</code></a>
Fix format</li>
<li><a
href="01229828ff"><code>0122982</code></a>
Apply workaround for earlyExit</li>
<li><a
href="3185ecfd61"><code>3185ecf</code></a>
Update &quot;only-&quot; actions to node20</li>
<li><a
href="25618a0a67"><code>25618a0</code></a>
Bump version</li>
<li>Additional commits viewable in <a
href="https://github.com/actions/cache/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/cache&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 12:02:00 +01:00
David Barroso
95eaac8e39 chore: replace nix code with standardized nixops (#193)
Only changes are to the .nix files, changes to `.go` files were
performed by the linter `golines -w --base-formatter=gofumpt .`
2024-01-15 11:13:12 +01:00
David Barroso
9304c39b97 chore: update deps (#191) 2024-01-11 19:13:17 +01:00
github-actions[bot]
8d454973d8 chore: update versions (#454)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-11 13:09:25 +01:00
David Barroso
68aa985498 chore: add pnpm audit to the CI and update deps (#457)
* chore: add pnpm audit to the CI and update deps

* fix: add axios module to moduleNameMapper in jest.config.js

* fix: add missing type in validation

* chore: add changeset

---------

Co-authored-by: Hassan Ben Jobrane <hsanbenjobrane@gmail.com>
2024-01-11 13:07:55 +01:00
David Barroso
011516e5d9 fix: parse metadata during the oauth callback (#458) 2024-01-11 12:24:56 +01:00
Quentin Decré
00b3994ae1 fix: added an index on refresh_tokens to improve lookup performance (#453) 2023-12-04 15:17:59 +01:00
dependabot[bot]
19d678ce26 chore: bump cachix/cachix-action from 12 to 13 (#189)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action)
from 12 to 13.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/cachix-action/releases">cachix/cachix-action's
releases</a>.</em></p>
<blockquote>
<h2>cachix-action-v13</h2>
<ul>
<li>run on node20</li>
<li>add <code>skipAddingSubstituter</code> to skip running <code>cachix
use</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="6a2e08b5eb"><code>6a2e08b</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/158">#158</a>
from cachix/bump-node</li>
<li><a
href="e98f643462"><code>e98f643</code></a>
Commit dist</li>
<li><a
href="2025bdaff1"><code>2025bda</code></a>
Bump node in devenv</li>
<li><a
href="6d013b15ef"><code>6d013b1</code></a>
Bump dependencies</li>
<li><a
href="33393dc192"><code>33393dc</code></a>
Update tsconfig</li>
<li><a
href="1ad072581d"><code>1ad0725</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/156">#156</a>
from cachix/dependabot/github_actions/cachix/install-...</li>
<li><a
href="70d2b7fe3d"><code>70d2b7f</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/157">#157</a>
from cachix/dependabot/github_actions/actions/checkout-4</li>
<li><a
href="d0ac1486c5"><code>d0ac148</code></a>
Run on node20</li>
<li><a
href="fe4b2e9abc"><code>fe4b2e9</code></a>
chore(deps): bump actions/checkout from 3 to 4</li>
<li><a
href="8d53462873"><code>8d53462</code></a>
chore(deps): bump cachix/install-nix-action from 22 to 23</li>
<li>Additional commits viewable in <a
href="https://github.com/cachix/cachix-action/compare/v12...v13">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/cachix-action&package-manager=github_actions&previous-version=12&new-version=13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 08:29:40 +01:00
github-actions[bot]
19316ad884 chore: update versions (#449)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-28 11:37:14 +01:00
Hassan Ben Jobrane
634f2bfe2d feat: add AUTH_WEBAUTHN_RP_ID environment variable (#446)
* feat: add AUTH_WEBAUTHN_RP_ID environment variable

* test(webauthn): add test when rpId set in environment variables

* chore: add changeset

* chore: update AUTH_WEBAUTHN_RP_ID description

* fix: typo in `AUTH_WEBAUTHN_RP_ID` description
2023-11-28 11:26:20 +01:00
ErwinPetit
2e3096cc9f fix: conceal error if AUTH_CONCEAL_ERRORS is set (#445)
* fix: conceal error if AUTH_CONCEAL_ERRORS is set

* chore: add changeset

---------

Co-authored-by: Hassan Ben Jobrane <hsanbenjobrane@gmail.com>
2023-11-28 11:14:12 +01:00
Guillermo Enrique Bernal Moreira
51ccc70282 feat: migrate to aws-sdk-go-v2 (#186) 2023-11-22 09:39:59 +01:00
github-actions[bot]
b6b1afd2cf chore: update versions (#442)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-16 13:27:20 +01:00
Hassan Ben Jobrane
cd8c786751 feat: disable signup (#444)
* feat: validate signup disabled during email/password registration

* fix: return forbidden status code for disabled sign up

* feat: check if signup is disabled upon OAuth registration

* chore: remove unnecessary blank line in app.ts

* feat: check if signup is disabled upon passwordless email signup

* feat: check if signup disabled upon passwordless SMS signin

* feat: check if disabled upon signup via webauthn

* chore: add changeset

* chore: update docs about `AUTH_DISABLE_SIGNUP`
2023-11-15 17:03:33 +01:00
Hassan Ben Jobrane
15459a92fe fix: use empty as AUTH_API_PREFIX default value (#443)
* fix: use empty as AUTH_API_PREFIX default value

* chore: add changeset
2023-11-14 10:51:22 +01:00
Hassan Ben Jobrane
003cfd6bff fix: make sure existing modified permissions are not overwritten (#424)
* fix: make sure existing modified permissions are not overwritten

* chore: add changeset
2023-11-13 17:11:43 +01:00
David Barroso
ffba7d8402 fix: move catch-all route-not-found handler to root (#440) 2023-11-13 16:19:25 +01:00
github-actions[bot]
377a846708 chore: update versions (#441)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-13 14:11:52 +01:00
Hassan Ben Jobrane
b727ab9f0e fix: update linkedin oauth provider configuration (#438)
* fix: update linkedin oauth provider configuration

* chore: add changeset
2023-11-13 13:59:19 +01:00
David Barroso
3bdbf46a3e chore: bump go to 1.21.4 due to CVE (#187) 2023-11-09 10:57:10 +01:00
github-actions[bot]
eef9c803c9 chore: update versions (#431)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-08 13:34:36 +01:00
David Barroso
024258cc12 feat: set oauth origin dynamically based on host header (#427) 2023-11-08 13:27:13 +01:00
Hassan Ben Jobrane
c3fcb7f5c4 fix(ci): update GitHub workflow to push to Docker Hub with git tag (#432) 2023-11-07 11:54:28 +01:00
David Barroso
044ed00fcf fix: mount oauth and healthz routes correctly when specifying AUTH_API_PREFIX (#433)
* fix: mount oauth and healthz routes correctly when specifying AUTH_API_PREFIX

* asd
2023-11-07 11:40:07 +01:00
David Barroso
5663eecea7 feat: allow configuring api prefix (#430) 2023-11-06 16:12:19 +01:00
github-actions[bot]
e1ec543853 chore: update versions (#418)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-06 13:12:16 -01:00
Tyrone Chris Abad
2aa0d6d6ca fix: incorrect assignment of displayName for Apple OAuth (#425)
* fix: incorrect assignment of `displayName`

* fix: incorrect param being used to get user info

* fix: profile no longer becomes stringified if user is already existing

* refactor(oauth): parse the user displayName properly

* chore: refactor handler for apple oauth

* chore: add changeset

* chore: add error message when parsing user data from Apple's response

* chore: adjust warning message

---------

Co-authored-by: Tyrone <tyronechris67@gmail.com>
Co-authored-by: Hassan Ben Jobrane <hsanbenjobrane@gmail.com>
2023-11-06 12:00:49 +01:00
ChrisSG
4d226c5b83 adds a flag for specifying the db name for migrations (#185)
## Problem
Currently, it seems that the name of the target database for migrations
is fixed to "default." This produces the following error when there is
no database named "default":
```
problem applying Hasura metadata: problem adding metadata for the buckets table: status_code: 400\nresponse: {"error":"source with name \"default\" does not exist","path":"$.args","code":"not-exists"}
```
(see
https://github.com/nhost/hasura-storage/issues/184#issue-1972012220)

## Solution
To address this issue and provide more flexibility in configuring the
target database for migrations, we propose the following solution:

- **Environment Variable**: Introduce a new environment variable named
`HASURA_DB_NAME` to allow users to specify the target database name for
migrations.

- **Configuration Update**: Modify the code in
`hasura-storage/migrations/hasura.go` to use the value of
`HASURA_DB_NAME` as the target database name. This ensures that users
can configure the target database dynamically.

- **Fallback to "default"**: If `HASURA_DB_NAME` is not set, the code
should default to "default" to maintain backward compatibility.

## Notes
- Users can set the `HASURA_DB_NAME` environment variable to configure
the target database for migrations to their desired database name.

- This change enhances the flexibility of the migration process,
especially in cases where the database name is not "default."

- Reviewers are encouraged to verify that the documentation has been
updated to reflect the new configuration option.

With this solution, users can customize the target database for
migrations by setting the `HASURA_DB_NAME` environment variable, which
eliminates the error associated with the fixed "default" database name.
2023-11-03 07:58:30 +01:00
dependabot[bot]
97a03dcfce chore: update dependencies (#181)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Barroso <dbarrosop@dravetech.com>
2023-10-25 11:23:53 +02:00
dependabot[bot]
26572176d3 chore: Bump aws-actions/amazon-ecr-login from 1 to 2 (#179)
Bumps
[aws-actions/amazon-ecr-login](https://github.com/aws-actions/amazon-ecr-login)
from 1 to 2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/amazon-ecr-login/releases">aws-actions/amazon-ecr-login's
releases</a>.</em></p>
<blockquote>
<h2>v2</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v2.0.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.7.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.6.2</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.6.1</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.6.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.5.3</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.5.2</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.5.1</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.5.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.4.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.3.3</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.3.2</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.3.1</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.3.0</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.2.2</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v1.2.1</h2>
<p>See the <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/HEAD/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/amazon-ecr-login/blob/main/CHANGELOG.md">aws-actions/amazon-ecr-login's
changelog</a>.</em></p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="062b18b96a"><code>062b18b</code></a>
chore(release): 2.0.1</li>
<li><a
href="9238dd443b"><code>9238dd4</code></a>
Merge pull request <a
href="https://redirect.github.com/aws-actions/amazon-ecr-login/issues/532">#532</a>
from aws-actions/node_upgrade</li>
<li><a
href="e618bbed74"><code>e618bbe</code></a>
chore: upgrade to node20</li>
<li><a
href="33f92af657"><code>33f92af</code></a>
chore(release): 2.0.0</li>
<li><a
href="5de13da834"><code>5de13da</code></a>
Merge pull request <a
href="https://redirect.github.com/aws-actions/amazon-ecr-login/issues/530">#530</a>
from aws-actions/dist2</li>
<li><a
href="d6ae50c722"><code>d6ae50c</code></a>
chore: update dist</li>
<li><a
href="537f0fb431"><code>537f0fb</code></a>
Merge pull request <a
href="https://redirect.github.com/aws-actions/amazon-ecr-login/issues/529">#529</a>
from aws-actions/dist</li>
<li><a
href="8ccdcdca26"><code>8ccdcdc</code></a>
chore: update dist</li>
<li><a
href="d71acafb87"><code>d71acaf</code></a>
feat: release v2 (<a
href="https://redirect.github.com/aws-actions/amazon-ecr-login/issues/520">#520</a>)</li>
<li><a
href="3542211ff6"><code>3542211</code></a>
chore: Bump <code>@​aws-sdk/client-ecr-public</code> from 3.414.0 to
3.418.0 (<a
href="https://redirect.github.com/aws-actions/amazon-ecr-login/issues/525">#525</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aws-actions/amazon-ecr-login/compare/v1...v2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-actions/amazon-ecr-login&package-manager=github_actions&previous-version=1&new-version=2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 10:08:29 +02:00
David Barroso
07d48bc121 chore: docs: added antivirus documentation (#178) 2023-09-28 07:26:12 +02:00
David Barroso
59e588ae4a chore: added codeql (#417)
* chore: added codeql

* added changeset

* asd
2023-09-21 13:26:44 +02:00
github-actions[bot]
962e7b7561 chore: update versions (#414)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-09-15 16:17:37 +01:00
Hassan Ben Jobrane
4eff7f4958 fix: send back refresh token after a sign-in with pat (#412)
* fix: send back refresh token after a signin with pat

* chore: add changeset
2023-09-15 16:09:30 +01:00
dependabot[bot]
e18f4e0be0 chore: Bump docker/setup-qemu-action from 2 to 3 (#177)
Bumps
[docker/setup-qemu-action](https://github.com/docker/setup-qemu-action)
from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/setup-qemu-action/releases">docker/setup-qemu-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<ul>
<li>Node 20 as default runtime (requires <a
href="https://github.com/actions/runner/releases/tag/v2.308.0">Actions
Runner v2.308.0</a> or later) by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/setup-qemu-action/pull/102">docker/setup-qemu-action#102</a></li>
<li>Bump <code>@​actions/core</code> from 1.10.0 to 1.10.1 in <a
href="https://redirect.github.com/docker/setup-qemu-action/pull/103">docker/setup-qemu-action#103</a></li>
<li>Bump semver from 6.3.0 to 6.3.1 in <a
href="https://redirect.github.com/docker/setup-qemu-action/pull/89">docker/setup-qemu-action#89</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.0.0">https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.0.0</a></p>
<h2>v2.2.0</h2>
<ul>
<li>Trim off spaces in <code>platforms</code> input by <a
href="https://github.com/Chocobo1"><code>@​Chocobo1</code></a> in <a
href="https://redirect.github.com/docker/setup-qemu-action/pull/64">docker/setup-qemu-action#64</a></li>
<li>Switch to actions-toolkit implementation by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/setup-qemu-action/pull/70">docker/setup-qemu-action#70</a>
<a
href="https://redirect.github.com/docker/setup-qemu-action/pull/80">docker/setup-qemu-action#80</a>
<a
href="https://redirect.github.com/docker/setup-qemu-action/pull/83">docker/setup-qemu-action#83</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-qemu-action/compare/v2.1.0...v2.2.0">https://github.com/docker/setup-qemu-action/compare/v2.1.0...v2.2.0</a></p>
<h2>v2.1.0</h2>
<ul>
<li>Use context for inputs by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/62">#62</a>)</li>
<li>Use built-in <code>getExecOutput</code> by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/61">#61</a>)</li>
<li>Remove workaround for <code>setOutput</code> by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/63">#63</a>)</li>
<li>Bump <code>@​actions/core</code> from 1.6.0 to 1.10.0 (<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/54">#54</a>
<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/58">#58</a>
<a
href="https://redirect.github.com/docker/setup-qemu-action/issues/59">#59</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0">https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="68827325e0"><code>6882732</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/setup-qemu-action/issues/103">#103</a>
from docker/dependabot/npm_and_yarn/actions/core-1.10.1</li>
<li><a
href="183f4af504"><code>183f4af</code></a>
chore: update generated content</li>
<li><a
href="f17493529e"><code>f174935</code></a>
build(deps): bump <code>@​actions/core</code> from 1.10.0 to 1.10.1</li>
<li><a
href="2e423eb500"><code>2e423eb</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/setup-qemu-action/issues/89">#89</a>
from docker/dependabot/npm_and_yarn/semver-6.3.1</li>
<li><a
href="ecc406afa7"><code>ecc406a</code></a>
Bump semver from 6.3.0 to 6.3.1</li>
<li><a
href="12dec5e201"><code>12dec5e</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/setup-qemu-action/issues/102">#102</a>
from crazy-max/update-node20</li>
<li><a
href="c29b312130"><code>c29b312</code></a>
chore: node 20 as default runtime</li>
<li><a
href="34ae628c8f"><code>34ae628</code></a>
chore: update generated content</li>
<li><a
href="1f3d2e1ac0"><code>1f3d2e1</code></a>
chore: fix author in package.json</li>
<li><a
href="277dbe8c9c"><code>277dbe8</code></a>
vendor: bump <code>@​docker/actions-toolkit</code> from 0.3.0 to
0.12.0</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/setup-qemu-action/compare/v2...v3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/setup-qemu-action&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:24:21 +02:00
dependabot[bot]
d88ba6b17a chore: Bump docker/login-action from 2 to 3 (#176)
Bumps [docker/login-action](https://github.com/docker/login-action) from
2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/login-action/releases">docker/login-action's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<ul>
<li>Node 20 as default runtime (requires <a
href="https://github.com/actions/runner/releases/tag/v2.308.0">Actions
Runner v2.308.0</a> or later) by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/login-action/pull/593">docker/login-action#593</a></li>
<li>Bump <code>@​actions/core</code> from 1.10.0 to 1.10.1 in <a
href="https://redirect.github.com/docker/login-action/pull/598">docker/login-action#598</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> and
<code>@​aws-sdk/client-ecr-public</code> to 3.410.0 in <a
href="https://redirect.github.com/docker/login-action/pull/555">docker/login-action#555</a>
<a
href="https://redirect.github.com/docker/login-action/pull/560">docker/login-action#560</a>
<a
href="https://redirect.github.com/docker/login-action/pull/582">docker/login-action#582</a>
<a
href="https://redirect.github.com/docker/login-action/pull/599">docker/login-action#599</a></li>
<li>Bump semver from 6.3.0 to 6.3.1 in <a
href="https://redirect.github.com/docker/login-action/pull/556">docker/login-action#556</a></li>
<li>Bump https-proxy-agent to 7.0.2 <a
href="https://redirect.github.com/docker/login-action/pull/561">docker/login-action#561</a>
<a
href="https://redirect.github.com/docker/login-action/pull/588">docker/login-action#588</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v2.2.0...v3.0.0">https://github.com/docker/login-action/compare/v2.2.0...v3.0.0</a></p>
<h2>v2.2.0</h2>
<ul>
<li>Switch to actions-toolkit implementation by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> in <a
href="https://redirect.github.com/docker/login-action/pull/409">docker/login-action#409</a>
<a
href="https://redirect.github.com/docker/login-action/pull/470">docker/login-action#470</a>
<a
href="https://redirect.github.com/docker/login-action/pull/476">docker/login-action#476</a></li>
<li>Bump <code>@​aws-sdk/client-ecr</code> and
<code>@​aws-sdk/client-ecr-public</code> to 3.347.1 in <a
href="https://redirect.github.com/docker/login-action/pull/524">docker/login-action#524</a>
<a
href="https://redirect.github.com/docker/login-action/pull/364">docker/login-action#364</a>
<a
href="https://redirect.github.com/docker/login-action/pull/363">docker/login-action#363</a></li>
<li>Bump minimatch from 3.0.4 to 3.1.2 in <a
href="https://redirect.github.com/docker/login-action/pull/354">docker/login-action#354</a></li>
<li>Bump json5 from 2.2.0 to 2.2.3 in <a
href="https://redirect.github.com/docker/login-action/pull/378">docker/login-action#378</a></li>
<li>Bump http-proxy-agent from 5.0.0 to 7.0.0 in <a
href="https://redirect.github.com/docker/login-action/pull/509">docker/login-action#509</a></li>
<li>Bump https-proxy-agent from 5.0.1 to 7.0.0 in <a
href="https://redirect.github.com/docker/login-action/pull/508">docker/login-action#508</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v2.1.0...v2.2.0">https://github.com/docker/login-action/compare/v2.1.0...v2.2.0</a></p>
<h2>v2.1.0</h2>
<ul>
<li>Ensure AWS temp credentials are redacted in workflow logs by <a
href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a
href="https://redirect.github.com/docker/login-action/issues/275">#275</a>)</li>
<li>Bump <code>@​actions/core</code> from 1.6.0 to 1.10.0 (<a
href="https://redirect.github.com/docker/login-action/issues/252">#252</a>
<a
href="https://redirect.github.com/docker/login-action/issues/292">#292</a>)</li>
<li>Bump <code>@​aws-sdk/client-ecr</code> from 3.53.0 to 3.186.0 (<a
href="https://redirect.github.com/docker/login-action/issues/298">#298</a>)</li>
<li>Bump <code>@​aws-sdk/client-ecr-public</code> from 3.53.0 to 3.186.0
(<a
href="https://redirect.github.com/docker/login-action/issues/299">#299</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/docker/login-action/compare/v2.0.0...v2.1.0">https://github.com/docker/login-action/compare/v2.0.0...v2.1.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="343f7c4344"><code>343f7c4</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/599">#599</a>
from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li>
<li><a
href="aad0f974f2"><code>aad0f97</code></a>
chore: update generated content</li>
<li><a
href="2e0cd39144"><code>2e0cd39</code></a>
build(deps): bump the aws-sdk-dependencies group with 2 updates</li>
<li><a
href="203bc9c4ef"><code>203bc9c</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/588">#588</a>
from docker/dependabot/npm_and_yarn/proxy-agent-depen...</li>
<li><a
href="2199648fc8"><code>2199648</code></a>
chore: update generated content</li>
<li><a
href="b489376173"><code>b489376</code></a>
build(deps): bump the proxy-agent-dependencies group with 1 update</li>
<li><a
href="7c309e74e6"><code>7c309e7</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/598">#598</a>
from docker/dependabot/npm_and_yarn/actions/core-1.10.1</li>
<li><a
href="0ccf222961"><code>0ccf222</code></a>
chore: update generated content</li>
<li><a
href="56d703e106"><code>56d703e</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/login-action/issues/597">#597</a>
from docker/dependabot/github_actions/aws-actions/con...</li>
<li><a
href="24d3b3519e"><code>24d3b35</code></a>
build(deps): bump <code>@​actions/core</code> from 1.10.0 to 1.10.1</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/login-action/compare/v2...v3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/login-action&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-13 08:24:04 +02:00
dependabot[bot]
3de9a2d09b chore: Bump aws-actions/configure-aws-credentials from 3 to 4 (#175)
Bumps
[aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials)
from 3 to 4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/configure-aws-credentials/releases">aws-actions/configure-aws-credentials's
releases</a>.</em></p>
<blockquote>
<h2>v4</h2>
<p>This tag tracks the latest v4.x.x release</p>
<h2>v4.0.0</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v4.0.0/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v3.0.2</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v3.0.2/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v3.0.1</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v3.0.1/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md">aws-actions/configure-aws-credentials's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v3.0.0...v3.0.1">3.0.1</a>
(2023-08-24)</h2>
<h3>Features</h3>
<ul>
<li>Can configure <code>special-characters-workaround</code> to keep
retrying credentials if the returned
credentials have special characters (Fixes <a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/599">#599</a>)</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Fixes <a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/792">#792</a>:
Action fails when intending to use existing credentials</li>
<li>Minor typo fix from <a
href="https://github.com/ubaid-ansari21"><code>@​ubaid-ansari21</code></a></li>
</ul>
<h3>Changes to existing functionality</h3>
<ul>
<li>Special characters are now allowed in returned credential variables
unless you configure the
<code>special-characters-workaround</code> option</li>
</ul>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.2.0...v3.0.0">3.0.0</a>
(2023-08-21)</h2>
<h3>Features</h3>
<ul>
<li>Can configure <code>max-retries</code> and
<code>disable-retry</code> to modify retry functionality when the assume
role call fails</li>
<li>Set returned credentials as step outputs with
<code>output-credentials</code></li>
<li>Clear AWS related environment variables at the start of the action
with <code>unset-current-credentials</code></li>
<li>Unique role identifier is now printed in the workflow logs</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Can't use credentials if they contain a special character</li>
<li>Retry functionality added when generating the JWT fails</li>
<li>Can now use <code>webIdentityTokenFile</code> option</li>
<li>Branch name validation too strict</li>
<li>JS SDK v2 deprecation warning in workflow logs</li>
</ul>
<h3>Changes to existing functionality</h3>
<ul>
<li>Default session duration is now 1 hour in all cases (from 6 hours in
some cases)</li>
<li>Account ID will not be masked by default in logs</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8c3f20df09"><code>8c3f20d</code></a>
chore: release v4 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/840">#840</a>)</li>
<li>See full diff in <a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-actions/configure-aws-credentials&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-12 10:31:12 +02:00
David Barroso
074d1e1eaf chore: avoid issues with av notification (#174)
There is no need to notify clamav as the `SelfCheck` option is enabled
by default. We are making this explicit in the clamav configuration to
avoid future confusions.
2023-09-11 16:12:38 +02:00
dependabot[bot]
cf652fc168 chore: Bump actions/checkout from 3 to 4 (#173)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to
4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v4.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update default runtime to node20 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li>Support fetching without the --progress option by <a
href="https://github.com/simonbaird"><code>@​simonbaird</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
<li>Release 4.0.0 by <a
href="https://github.com/takost"><code>@​takost</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/takost"><code>@​takost</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
<li><a
href="https://github.com/simonbaird"><code>@​simonbaird</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p>
<h2>v3.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Mark test scripts with Bash'isms to be run via Bash by <a
href="https://github.com/dscho"><code>@​dscho</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li>
<li>Add option to fetch tags even if fetch-depth &gt; 0 by <a
href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li>Release 3.6.0 by <a
href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/RobertWieczoreck"><code>@​RobertWieczoreck</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
<li><a
href="https://github.com/luketomlinson"><code>@​luketomlinson</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p>
<h2>v3.5.3</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Checkout Issue in self hosted runner due to faulty submodule
check-ins by <a
href="https://github.com/megamanics"><code>@​megamanics</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li>Fix typos found by codespell by <a
href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li>Add support for sparse checkouts by <a
href="https://github.com/dscho"><code>@​dscho</code></a> and <a
href="https://github.com/dfdez"><code>@​dfdez</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
<li>Release v3.5.3 by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/megamanics"><code>@​megamanics</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
<li><a
href="https://github.com/DimitriPapadopoulos"><code>@​DimitriPapadopoulos</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
<li><a href="https://github.com/dfdez"><code>@​dfdez</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p>
<h2>v3.5.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix: Use correct API url / endpoint in GHES by <a
href="https://github.com/fhammerl"><code>@​fhammerl</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a>
based on <a
href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a>
by <a href="https://github.com/1newsr"><code>@​1newsr</code></a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p>
<h2>v3.5.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Improve checkout performance on Windows runners by upgrading
<code>@​actions/github</code> dependency by <a
href="https://github.com/BrettDong"><code>@​BrettDong</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/BrettDong"><code>@​BrettDong</code></a>
made their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v4.0.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1067">Support
fetching without the --progress option</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1436">Update to
node20</a></li>
</ul>
<h2>v3.6.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark
test scripts with Bash'isms to be run via Bash</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/579">Add
option to fetch tags even if fetch-depth &gt; 0</a></li>
</ul>
<h2>v3.5.3</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1196">Fix:
Checkout fail in self-hosted runners when faulty submodule are
checked-in</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix
typos found by codespell</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1369">Add
support for sparse checkouts</a></li>
</ul>
<h2>v3.5.2</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1289">Fix
api endpoint for GHES</a></li>
</ul>
<h2>v3.5.1</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1246">Fix
slow checkout on Windows</a></li>
</ul>
<h2>v3.5.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/1237">Add
new public key for known_hosts</a></li>
</ul>
<h2>v3.4.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1209">Upgrade
codeql actions to v2</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1210">Upgrade
dependencies</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1225">Upgrade
<code>@​actions/io</code></a></li>
</ul>
<h2>v3.3.0</h2>
<ul>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1045">Implement
branch list using callbacks from exec function</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/1050">Add
in explicit reference to private checkout options</a></li>
<li>[Fix comment typos (that got added in <a
href="https://redirect.github.com/actions/checkout/issues/770">#770</a>)](<a
href="https://redirect.github.com/actions/checkout/pull/1057">actions/checkout#1057</a>)</li>
</ul>
<h2>v3.2.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/942">Add
GitHub Action to perform release</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/967">Fix
status badge</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1002">Replace
datadog/squid with ubuntu/squid Docker image</a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/964">Wrap
pipeline commands for submoduleForeach in quotes</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1029">Update
<code>@​actions/io</code> to 1.1.2</a></li>
<li><a
href="https://redirect.github.com/actions/checkout/pull/1039">Upgrading
version to 3.2.0</a></li>
</ul>
<h2>v3.1.0</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/939">Use
<code>@​actions/core</code> <code>saveState</code> and
<code>getState</code></a></li>
<li><a href="https://redirect.github.com/actions/checkout/pull/922">Add
<code>github-server-url</code> input</a></li>
</ul>
<h2>v3.0.2</h2>
<ul>
<li><a href="https://redirect.github.com/actions/checkout/pull/770">Add
input <code>set-safe-directory</code></a></li>
</ul>
<h2>v3.0.1</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3df4ab11eb"><code>3df4ab1</code></a>
Release 4.0.0 (<a
href="https://redirect.github.com/actions/checkout/issues/1447">#1447</a>)</li>
<li><a
href="8b5e8b7687"><code>8b5e8b7</code></a>
Support fetching without the --progress option (<a
href="https://redirect.github.com/actions/checkout/issues/1067">#1067</a>)</li>
<li><a
href="97a652b800"><code>97a652b</code></a>
Update default runtime to node20 (<a
href="https://redirect.github.com/actions/checkout/issues/1436">#1436</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v3...v4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=3&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 08:33:01 +02:00
dependabot[bot]
4c2318e9d4 chore: bump aws-actions/configure-aws-credentials from 2 to 3 (#172)
Bumps
[aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials)
from 2 to 3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/configure-aws-credentials/releases">aws-actions/configure-aws-credentials's
releases</a>.</em></p>
<blockquote>
<h2>v3</h2>
<p>This tag tracks the latest v3.x.x release</p>
<h2>v3.0.0</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v3.0.0/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v2.2.0</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v2.2.0/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
<h2>v2.1.0</h2>
<p>See the <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/v2.1.0/CHANGELOG.md">changelog</a>
for details about the changes included in this release.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md">aws-actions/configure-aws-credentials's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.2.0...v3.0.0">3.0.0</a>
(2023-08-21)</h2>
<h3>Features</h3>
<ul>
<li>Can configure <code>max-retries</code> and
<code>disable-retry</code> to modify retry functionality when the assume
role call fails</li>
<li>Set returned credentials as step outputs with
<code>output-credentials</code></li>
<li>Clear AWS related environment variables at the start of the action
with <code>unset-current-credentials</code></li>
<li>Unique role identifier is now printed in the workflow logs</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>Can't use credentials if they contain a special character</li>
<li>Retry functionality added when generating the JWT fails</li>
<li>Can now use <code>webIdentityTokenFile</code> option</li>
<li>Branch name validation too strict</li>
<li>JS SDK v2 deprecation warning in workflow logs</li>
</ul>
<h3>Changes to existing functionality</h3>
<ul>
<li>Default session duration is now 1 hour in all cases (from 6 hours in
some cases)</li>
<li>Account ID will not be masked by default in logs</li>
</ul>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.1.0...v2.2.0">2.2.0</a>
(2023-05-31)</h2>
<h3>Features</h3>
<ul>
<li><code>inline-session-policy</code> prop enables assuming a role with
inline session policies (<a
href="d00f6c6f41">d00f6c6</a>)</li>
<li><code>managed-session-policies</code> prop enables assuming a role
with managed policy arns (<a
href="d00f6c6f41">d00f6c6</a>)</li>
</ul>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v2.0.0...v2.1.0">2.1.0</a>
(2023-05-31)</h2>
<h3>Features</h3>
<ul>
<li><code>role-chaining</code> prop enables role chaining use case (<a
href="6fbd316fd1">6fbd316</a>)</li>
</ul>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v1.7.0...v2.0.0">2.0.0</a>
(2023-03-06)</h2>
<h3>Features</h3>
<ul>
<li>Version bump to use Node 16 by default.</li>
</ul>
<h2><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v1.6.1...v1.7.0">1.7.0</a>
(2022-08-03)</h2>
<h3>Features</h3>
<ul>
<li>Allow audience to be explicitly specified (<a
href="2f8dfd0ed4">2f8dfd0</a>)</li>
</ul>
<h3><a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v1.6.0...v1.6.1">1.6.1</a>
(2022-01-18)</h3>
<h3>Bug Fixes</h3>
<ul>
<li>OIDC Parallel Requests error (<a
href="133757e9b8">133757e</a>)</li>
<li>Strict Mode Deprecation (<a
href="4c5e1c60cc">4c5e1c6</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ef93a73b13"><code>ef93a73</code></a>
V3 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/791">#791</a>)</li>
<li><a
href="131c7b6fd1"><code>131c7b6</code></a>
chore: Bump jest from 29.6.2 to 29.6.3 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/786">#786</a>)</li>
<li><a
href="6334b403eb"><code>6334b40</code></a>
chore: Bump aws-sdk from 2.1436.0 to 2.1441.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/787">#787</a>)</li>
<li><a
href="360ea313a7"><code>360ea31</code></a>
chore: Bump aws-sdk from 2.1431.0 to 2.1436.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/783">#783</a>)</li>
<li><a
href="de93b00c9f"><code>de93b00</code></a>
chore: Bump eslint from 8.46.0 to 8.47.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/784">#784</a>)</li>
<li><a
href="746d33e7c1"><code>746d33e</code></a>
chore: Bump aws-sdk from 2.1426.0 to 2.1431.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/782">#782</a>)</li>
<li><a
href="706fc9ae3d"><code>706fc9a</code></a>
chore: Bump eslint from 8.45.0 to 8.46.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/780">#780</a>)</li>
<li><a
href="9918371ad5"><code>9918371</code></a>
chore: Bump aws-sdk from 2.1421.0 to 2.1426.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/781">#781</a>)</li>
<li><a
href="345462ab9e"><code>345462a</code></a>
chore: Bump jest from 29.6.1 to 29.6.2 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/779">#779</a>)</li>
<li><a
href="80a7a6c2a2"><code>80a7a6c</code></a>
chore: Bump aws-sdk from 2.1416.0 to 2.1421.0 (<a
href="https://redirect.github.com/aws-actions/configure-aws-credentials/issues/778">#778</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aws-actions/configure-aws-credentials/compare/v2...v3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-actions/configure-aws-credentials&package-manager=github_actions&previous-version=2&new-version=3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-24 08:47:36 +02:00
David Barroso
8feb508ea1 feat: added antivirus integration (#171) 2023-08-22 12:05:54 +02:00
David Barroso
996c8c2dff feat: added metadata column to files (#170)
Fixes #134 and #160

This basically introduces a new column `metadata` to the `files` table
of type `jsonb`. The user can populate this with any data it wants by
adding a `metadata` object to the `metadata[]` field in the
multipart-form (`metadata` field when updating files). For instance:

``` shell
curl http://localhost:8080/v1/files \
  -H "Content-Type: multipart/form-data" \
  -H "$AUTH" \
  -F "file[]=@client/testdata/alphabet.txt" \
  -F "metadata[]={\"metadata\":{\"num\":123,\"list\":[1,2,3]}};type=application/json"
```

In addition, we are moving away from the graphql client
`github.com/hasura/go-graphql-client` to `github.com/Yamashou/gqlgenc`
as I was running into some troubles dealing with jsonb objects. This has
the side-effect the graphql code is much cleaner and easier to
understand (this was long overdue to be honest).
2023-08-16 12:53:21 +02:00
David Barroso
e7dc5b3cee chore: update dependencies (#169) 2023-08-15 13:21:18 +02:00
David Barroso
f9bc7fa5c3 chore: udpate dependencies (#168) 2023-07-28 10:47:49 +02:00
Matteo Mazzoni
752c725750 Finetuning openapi doc for better swagger testing (#167) 2023-07-17 13:02:23 +02:00
github-actions[bot]
44c7d9e1ab chore: update versions (#409)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-07-12 13:48:33 +01:00
Alex
ca5010d5bc bugfix(hasura-auth) keep select and delete permissions already set in metadata for auth tables instead of overriding them (#407)
* bugfix(hasura-auth) keep select and delete permissions already set in metadata for auth tables instead of overriding them

* chore: add changeset

---------

Co-authored-by: Hassan Ben Jobrane <hsanbenjobrane@gmail.com>
2023-07-12 13:13:57 +01:00
David Barroso
c89b48d851 fix typo 2023-07-07 09:19:07 +02:00
dependabot[bot]
c5f688fb65 chore: bump nixbuild/nix-quick-install-action from 24 to 25 (#166)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 24 to 25.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v24...v25)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-04 13:56:38 +02:00
José Henrique Leão
f32b7846d1 feat: allow configuration of cors domains and credentials (#159) 2023-06-27 20:06:21 +02:00
dependabot[bot]
a8e9c1d32a chore: bump nixbuild/nix-quick-install-action from 23 to 24 (#164)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 23 to 24.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v23...v24)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-26 08:44:33 +02:00
github-actions[bot]
87fee13f4e chore: update versions (#402)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-23 10:25:20 +02:00
Szilárd Dóró
840d730ad7 feat(email): add support for x-smtpapi header (#401)
* feat(email): add support for `x-smtpapi` header

* chore: add changeset
2023-06-23 08:32:28 +02:00
github-actions[bot]
072d25fd3e chore: update versions (#399)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-06-23 08:23:37 +02:00
dependabot[bot]
b7e3151702 chore: bump nixbuild/nix-quick-install-action from 22 to 23 (#163)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 22 to 23.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v22...v23)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-23 08:11:58 +02:00
Tuan (Tony) T
78447dd391 fix: url-safe filename (#162) 2023-06-21 11:10:31 +02:00
Steve Grosbois
1706c37051 fix: Fixed useless "&" char on createEmailRedirectionLink function (#363)
* fix: Fixed useless & on createEmailRedirectionLink function

* chore: add changeset

---------

Co-authored-by: Szilárd Dóró <doroszilard@gmail.com>
2023-06-19 15:01:08 +02:00
Szilárd Dóró
7a07b50939 chore(tests): use the same testing method for local and CI (#400)
* chore: use the same testing method for local and CI

* fix: don't break CI

* fix: don't break CI

* fix: use correct env vars

* fix: don't break CI

* fix: use correct env vars

* fix: use correct env vars

* chore: remove artifact upload step from CI
2023-06-19 14:44:17 +02:00
Steve Grosbois
60dcbf417a fix: Fixed typos for french (#392)
* fix: Fixed typos for french

* chore: add changeset

---------

Co-authored-by: Szilárd Dóró <doroszilard@gmail.com>
2023-06-19 11:22:47 +02:00
Szilárd Dóró
ceaca45112 chore: improve logging and bump Node.js to v18 (#398)
* chore(logs): improve logging in production

- bump Node.js to v18

* chore: add changeset
2023-06-19 11:16:00 +02:00
github-actions[bot]
0a4e4b315d chore: update versions (#395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-31 16:38:27 +02:00
Ian Gabriel Sanchez
0cc9d36f2c Handle comma separated allowed roles (#391)
* fix: Fix issue where hasura-auth crashes when adding allowed roles upon signin with provider

* chore: Run prettier

* chore: Update .changeset/strange-seas-whisper.md

Co-authored-by: Szilárd Dóró <doroszilard@gmail.com>

---------

Co-authored-by: Szilárd Dóró <doroszilard@gmail.com>
2023-05-31 16:21:36 +02:00
David Barroso
5bd777d6c2 fix: pass quality to image transformer (#158) 2023-05-22 15:33:38 +02:00
github-actions[bot]
fe87694e88 chore: update versions (#387)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-17 10:23:21 +02:00
Szilárd Dóró
d412a931f2 feat: add refreshTokenId to the session (#386)
* feat: add `refreshTokenId` to the session object

* chore: update `pnpm-lock` to use v6

* bump pnpm version

* bump pnpm version in the Dockerfile

* feat: add null refreshTokenId to the /signin/pat endpoint
2023-05-16 13:02:56 +02:00
github-actions[bot]
3b1fbcec52 chore: update versions (#384)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-15 15:19:21 +02:00
Szilárd Dóró
50a1b1d60c chore: migrate refresh_token column to id (#374) 2023-05-15 15:07:21 +02:00
Szilárd Dóró
3235e38b20 chore: add probot-stale (#156)
* chore: add probot

* chore: remove trailing empty line
2023-05-11 10:58:01 +02:00
Szilárd Dóró
b2a1dbb8fc chore: add probot (#383) 2023-05-11 10:26:11 +02:00
github-actions[bot]
b156b1d712 chore: update versions (#380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-05-09 15:55:02 +02:00
Szilárd Dóró
5529f7de3f fix(pat): improve logs and replace enum type (#381)
* chore: extend PAT logging

* fix: replace 'CREATE TYPE' with a proper enum table

* chore: add changeset

* fix: update terminology

* fix: don't break tests
2023-05-09 15:01:38 +02:00
Szilárd Dóró
29eff81383 fix: be more verbose when a provider fails (#378)
* fix: be more verbose when a provider fails

* chore: improve readability

* fix: don't break tests
2023-05-08 14:23:18 +02:00
Szilárd Dóró
005e259ff6 chore(logs): add env var to control visibility in logs (#379)
* chore: add `AUTH_SHOW_LOG_QUERY_PARAMS` env var

* fix: don't break tests

* revert env var

* chore: add docs

* fix tests
2023-05-05 12:20:31 +02:00
github-actions[bot]
bc73097f1b chore: update versions (#366)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-04-27 14:20:43 +02:00
Szilárd Dóró
9a7e02791a chore: improve log verbosity (#372)
* chore: improve log verbosity

* chore: add changeset

* fix: log unhandled exceptions and rejections

* feat: increase verbosity for 4xx / 5xx error logs
2023-04-26 16:59:32 +02:00
Szilárd Dóró
6fd10dca14 fix: migrate refresh_tokens metadata (#370)
* fix: migrate metadata

* fix: update test snapshots
2023-04-24 09:06:29 +02:00
Szilárd Dóró
08c2fbb80f fix: unify user session object (#369) 2023-04-24 09:02:14 +02:00
Szilárd Dóró
11e1eb3788 feat: Personal Access Tokens (#365)
* feat: add basic PAT support

* chore: reorganize PAT routes

* fix: pin `pnpm` version

* chore: add tests

* chore: remove unnecessary `refreshToken`

* fix: use correct error message

* chore: improve validation, extend tests

* chore: add changeset
2023-04-19 17:32:17 +02:00
github-actions[bot]
171aa8e659 chore: update versions (#360)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-03-20 17:15:49 -01:00
Nuno Pato
73b7642a37 add missing changeset (#359) 2023-03-20 16:37:53 -01:00
Nuno Pato
993ca5720b allow wildcard urls (#353)
* add back support for wildcard domains in redirectUrl

* asd

* asd

* asd

* asd
2023-03-17 15:48:28 -01:00
David Barroso
b1ce4703d0 feat: allow manipulation on presigned urls (#152) 2023-03-17 12:33:39 +01:00
dependabot[bot]
771dca1064 chore: bump nixbuild/nix-quick-install-action from 21 to 22 (#151)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 21 to 22.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v21...v22)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-15 07:46:06 +01:00
dependabot[bot]
2f5c47ec84 chore: bump aws-actions/configure-aws-credentials from 1 to 2 (#150)
Bumps [aws-actions/configure-aws-credentials](https://github.com/aws-actions/configure-aws-credentials) from 1 to 2.
- [Release notes](https://github.com/aws-actions/configure-aws-credentials/releases)
- [Changelog](https://github.com/aws-actions/configure-aws-credentials/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws-actions/configure-aws-credentials/compare/v1...v2)

---
updated-dependencies:
- dependency-name: aws-actions/configure-aws-credentials
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-07 14:10:16 +01:00
github-actions[bot]
42e14c855c chore: update versions (#349)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-02-17 15:25:58 -01:00
Nuno Pato
2eadfa97d2 Fix/redirect url validation (#348)
* Revert https://github.com/nhost/hasura-auth/pull/317

* asd

* use URL.hostname to make sure the domain name is the same

* asd
2023-02-17 12:04:26 -01:00
Nuno Pato
f7ec32fe02 Revert #317 (#347)
* Revert https://github.com/nhost/hasura-auth/pull/317

* asd

* asd
2023-02-17 10:50:14 -01:00
github-actions[bot]
55d4c66c72 chore: update versions 2023-01-27 09:47:27 +01:00
Asen Lekov
fff9d1f4a0 feat: translate email templates to Bulgarian 2023-01-23 10:35:29 +01:00
Pilou
de0b16325f Create clever-pianos-bake.md 2023-01-23 10:34:42 +01:00
Antonio J. Rodriguez
4f7cb06c67 feat: 🎸 translate email templates to spanish
Added suppor for Spanish language email templates
2023-01-23 10:34:42 +01:00
Pierre-Louis Mercereau
aea5d198ee chore: narrow oauth callback middleware route 2023-01-17 08:36:43 +01:00
Pilou
87a3e96687 Create hungry-insects-reflect.md 2023-01-13 21:39:56 +01:00
Evzen Supler
1c89e2d781 Change language code to cs 2023-01-13 21:39:56 +01:00
Evzen Supler
5bdb917d5e Add cz email templates 2023-01-13 21:39:56 +01:00
David Barroso
759e6a53c6 chore: clean pipeline (#147) 2023-01-13 11:24:42 +01:00
Pierre-Louis Mercereau
8b7a4b158d fix: return inserted user_provider 2023-01-11 14:27:14 +01:00
Pierre-Louis Mercereau
e538807b47 fix: default redirection 2023-01-11 13:50:47 +01:00
Olivier Fuxet
27bd02f691 fix: no refresh token for a new first-time user 2023-01-11 12:09:21 +01:00
Pierre-Louis Mercereau
de38369235 fix: correct redirect url with oauth 2023-01-11 12:08:51 +01:00
Olivier Fuxet
e0b9f13429 fix: wrong call to insertUserProviderToUser 2023-01-10 18:38:26 +01:00
Olivier Fuxet
a038291eae fix: error INSERT has more expressions than target columns 2023-01-10 18:38:26 +01:00
Olivier Fuxet
c5c82506cd fix: error Cannot read properties of undefined (reading 'id') 2023-01-10 18:38:26 +01:00
Olivier Fuxet
e4daa58f96 fix: error missing FROM-clause entry for table "up" 2023-01-10 16:37:16 +01:00
Pierre-Louis Mercereau
829ebd8fd9 chore: update changeset 2023-01-10 08:36:51 +01:00
Pierre-Louis Mercereau
5a224e69ca fix: Improve the logging of SMTP errors 2023-01-09 19:45:37 +01:00
Olivier Fuxet
3080132752 fix: user roles are not properly aggregated 2023-01-09 19:44:47 +01:00
Olivier Fuxet
b398ae2302 feat(custom-claims)!: when a claim is expected to be an array and is empty, set its value to {} instead of undefined 2023-01-07 18:08:53 +01:00
Pierre-Louis Mercereau
9ffb459d9a chore: improve template typings, and correct a bug in an sql instruction 2023-01-05 10:30:35 +01:00
Pierre-Louis Mercereau
1d413fb871 chore: Johan's suggestions 2023-01-05 09:57:50 +01:00
Pierre-Louis Mercereau
30bcd09cc6 Merge branch 'main' into refactor/sql-operations 2023-01-04 19:08:39 +01:00
Pierre-Louis Mercereau
cb5d650c50 chore: change max pool connections to 50, same as Hasura 2023-01-04 17:22:37 +01:00
David Barroso
b9aebcb47c feat: respect specified content-type if specified and is other than application/octet-stream (#139) 2023-01-04 10:15:09 +01:00
Pierre-Louis Mercereau
8e3d49b9c8 chore: update changeset 2023-01-04 09:08:55 +01:00
Pierre-Louis Mercereau
45afb45ebc chore: stop sending refresh tokens in the hash part of redirection urls 2023-01-04 09:08:55 +01:00
Pilou
14af6229b2 Update src/routes/signup/webauthn/verify.ts
Co-authored-by: Nuno Pato <nunopato@gmail.com>
2023-01-04 08:47:55 +01:00
Pilou
bb864f1d66 Update src/utils/postgres-client/index.ts
Co-authored-by: Nuno Pato <nunopato@gmail.com>
2023-01-04 08:47:44 +01:00
Pierre-Louis Mercereau
ec38a08017 Merge branch 'main' into refactor/sql-operations 2023-01-03 14:19:55 +01:00
Pierre-Louis Mercereau
015a7a00d4 refactor: codegen 2023-01-02 15:51:53 +01:00
Pilou
5e2bb6368f Update src/gql/refresh-tokens.graphql
Co-authored-by: Johan Eliasson <johan@nhost.io>
2023-01-02 15:51:53 +01:00
Pilou
893a30127b Update .changeset/silver-cars-applaud.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
f669c5c737 test: update snapshot 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
9448b7e7e8 refactor: rename hashed_refresh_token to refresh_token_hash 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
2e15427ec2 chore: changeset 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
8b9f249031 fix: use the Postgres sha256 hexadecimal syntax 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
b1077ed1db style: empty line 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
e91d667587 refactor 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
1c7ffedaf9 test: update snapshot 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
8d49471051 fix: correct sha256 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
f53b7409b3 fix: correct file name and generated expression 2023-01-02 15:51:53 +01:00
Pierre-Louis Mercereau
92830004a7 feat: add a hashed_refresh_token column 2023-01-02 15:51:53 +01:00
dependabot[bot]
be5e5f123f chore: bump nixbuild/nix-quick-install-action from 20 to 21 (#144)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 20 to 21.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v20...v21)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 11:13:41 +01:00
Pierre-Louis Mercereau
577570a14a chore: add missing properties to SessionUser 2022-12-29 12:04:58 +01:00
Pierre-Louis Mercereau
a9dfb173b2 chore: remove commitlint 2022-12-29 11:22:40 +01:00
Pierre-Louis Mercereau
696fcb0593 chore: remove unused depdendency 2022-12-29 11:20:39 +01:00
Pierre-Louis Mercereau
db3b7a979e chore: limit user fields sent as part of the session 2022-12-29 11:15:17 +01:00
Pierre-Louis Mercereau
d5eed8fa5b chore: changeset 2022-12-29 11:03:25 +01:00
Pierre-Louis Mercereau
5107e7c254 chore: correct webauthn sql operations 2022-12-29 10:47:41 +01:00
Pierre-Louis Mercereau
6be99f06a8 chore: improve and debug 2022-12-29 10:33:21 +01:00
Pierre-Louis Mercereau
9bcd66f362 refactor: replace the remaining 14 gql ops, and clean 2022-12-28 22:35:53 +01:00
Pierre-Louis Mercereau
97023e12e7 refactor: remove 5 more graphql operations 2022-12-28 18:26:21 +01:00
Pierre-Louis Mercereau
9695ca57d7 refactor: convert 13 graphql operations into sql 2022-12-28 18:08:23 +01:00
dependabot[bot]
4b801e5b95 chore: bump nixbuild/nix-quick-install-action from 19 to 20 (#143)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 19 to 20.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v19...v20)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-23 08:23:14 +01:00
github-actions[bot]
d11cabf8d3 chore: update versions (#313)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2022-12-22 15:57:40 -01:00
Pilou
1e48c9f63f Update .changeset/quiet-berries-develop.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-12-22 16:36:03 +01:00
Pilou
ee81d85a91 Update .changeset/quiet-berries-develop.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-12-22 16:36:03 +01:00
Pilou
17b2418e22 Update .changeset/quiet-berries-develop.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-12-22 16:36:03 +01:00
Pilou
d209e3c6e0 Update .changeset/quiet-berries-develop.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-12-22 16:36:03 +01:00
Pilou
2ec1393900 Update .changeset/quiet-berries-develop.md
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-12-22 16:36:03 +01:00
Pierre-Louis Mercereau
f85e92d5c4 refactor: allow implicit allowed roles/locales 2022-12-22 16:36:03 +01:00
Pilou
02da92a585 fix: workos query parameters (#312) 2022-12-21 17:51:52 -01:00
Kevin Rodríguez
f0c3768f62 fix: fixes file too small error message (#142) 2022-12-21 11:03:16 +01:00
David Barroso
8e342e4520 chore: update deps (#140) 2022-12-19 09:45:06 +01:00
Pierre-Louis Mercereau
a4517f6877 ci: use the cli action 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
fc9dba4887 ci: try realpath 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
f6a80a00cc ci: fine-tune 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
61c76dd256 ci: corrections 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
3a080b8ba9 ci: put things in the right place 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
c752050f41 ci: every test 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
a3bf06aa16 ci: fix yq file path 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
6acc71c7bb ci: correct paths 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
ecd969b345 ci: checkout repo 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
74c1c1bd27 ci: load: true 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
601259805c ci: disable build job 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
48f01ed8cb ci: no artifact 2022-12-12 08:34:29 +01:00
Pilou
e1a7507473 Update changesets.yaml 2022-12-12 08:34:29 +01:00
Pierre-Louis Mercereau
e5b2836215 ci: first e2e attempt 2022-12-12 08:34:29 +01:00
github-actions[bot]
8ff315e7a5 chore: update versions 2022-12-07 22:33:50 +01:00
Pierre-Louis Mercereau
f328846852 chore: bump hasura version 2022-12-07 22:25:05 +01:00
Pierre-Louis Mercereau
d3fe853b6b fix: preserve the Oauth session between the initial request and the callback 2022-12-07 22:25:05 +01:00
Pierre-Louis Mercereau
e32f1fb3f6 Merge branch 'L3K0V-sms-test-numbers' 2022-12-01 23:17:55 +01:00
Pierre-Louis Mercereau
a511353bf9 Merge branch 'sms-test-numbers' of https://github.com/L3K0V/hasura-auth into L3K0V-sms-test-numbers 2022-12-01 23:17:24 +01:00
Pierre-Louis Mercereau
951349bc34 feat: conceal sensitive error messages 2022-12-01 21:07:48 +01:00
Asen Lekov
9c25b1fedc docs(changeset): added 2022-12-01 16:11:27 +02:00
Asen Lekov
113ed2743d Merge branch 'main' into sms-test-numbers 2022-12-01 16:02:58 +02:00
Pierre-Louis Mercereau
7baab1c83f chore: update openapi specs 2022-11-30 17:00:55 +01:00
David Barroso
315e90dd5c feat: lower cache size to 1MB (#137) 2022-11-24 08:45:17 +01:00
github-actions[bot]
b93ecac587 chore: update versions 2022-11-23 18:07:46 +01:00
Pierre-Louis Mercereau
e0949d72dd fix: 🐛 adjust grant 2022-11-23 16:45:03 +01:00
github-actions[bot]
1caca158ab chore: update versions 2022-11-21 18:48:18 +01:00
Pierre-Louis Mercereau
164ba34789 ci: use correct tags output 2022-11-21 18:42:53 +01:00
Pilou
d2e6f4b98b Update changesets.yaml 2022-11-21 17:40:35 +01:00
Pierre-Louis Mercereau
01bcdbb17a ci: don't skip build/publish when no changeset 2022-11-21 17:20:35 +01:00
Pierre-Louis Mercereau
42d7ce8fd9 fix: 🐛 Oauth redirection 2022-11-21 17:12:53 +01:00
Pierre-Louis Mercereau
b5ae0fe2e1 chore: optimize CI and make pipeline consistent 2022-11-21 16:54:54 +01:00
Asen Lekov
c167964a97 Merge branch 'main' into sms-test-numbers 2022-11-20 18:19:02 +02:00
Pierre-Louis Mercereau
85b3ac0e53 ci: aws config 2022-11-17 22:08:23 +01:00
Pierre-Louis Mercereau
d4f6a92097 ci: push images 2022-11-17 22:01:37 +01:00
Pierre-Louis Mercereau
7d28373c6c correct dockerfile: remove postinstall script 2022-11-17 21:44:51 +01:00
Pierre-Louis Mercereau
4ad88ce9a8 correct dockerfile 2022-11-17 21:39:17 +01:00
github-actions[bot]
73c0307bb5 chore: update versions 2022-11-17 21:34:34 +01:00
Pierre-Louis Mercereau
ef9caac8df ci: revert pacakge name 2022-11-17 21:26:52 +01:00
Pierre-Louis Mercereau
3395e2460b ci: adapt publish to changesets 2022-11-17 21:24:44 +01:00
Pierre-Louis Mercereau
0577ae8435 test: option to accept any port 2022-11-17 10:41:31 +01:00
Pierre-Louis Mercereau
8482976c29 chore: add http?(s) test and example 2022-11-17 09:39:53 +01:00
Pierre-Louis Mercereau
00a7327309 Merge branch 'main' into feat/wildcard-domains 2022-11-17 09:19:07 +01:00
Pierre-Louis Mercereau
09478c4718 chore: 🤖 changeset 2022-11-17 09:09:31 +01:00
Pierre-Louis Mercereau
949c0b5a65 fix: 🐛 wildcards separators are dots, not slashes 2022-11-17 09:04:41 +01:00
Pierre-Louis Mercereau
f44c6f6164 Merge branch 'main' into feat/wildcard-domains 2022-11-17 08:30:47 +01:00
Pierre-Louis Mercereau
fd411579ca chore: 🤖 issue link 2022-11-17 08:28:51 +01:00
Pierre-Louis Mercereau
4d16514950 chore: 🤖 changesets 2022-11-17 08:27:28 +01:00
Pierre-Louis Mercereau
0904444355 Merge branch 'main' into refactor/grant 2022-11-17 08:17:25 +01:00
Pilou
b82bfb8318 Update src/validation/fields.ts
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-11-17 08:15:09 +01:00
Pierre-Louis Mercereau
c6daab9122 chore: release notes, and minor improvements 2022-11-17 08:04:46 +01:00
Pierre-Louis Mercereau
61da856b13 ci: remove unecessary check 2022-11-17 08:04:46 +01:00
Pierre-Louis Mercereau
412ab229c2 chore: remove release-it config and update dev md 2022-11-17 08:04:46 +01:00
Pierre-Louis Mercereau
0071a55b3e ci: decommission release-it and introduce changesets 2022-11-17 08:04:46 +01:00
Pierre-Louis Mercereau
8d40d15f9f docs: improve inline documentation 2022-11-16 23:20:35 +01:00
Pierre-Louis Mercereau
5e63d8d1b4 docs: add inline comment 2022-11-16 12:59:26 +01:00
Pierre-Louis Mercereau
42a76fcba0 docs: explain AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS 2022-11-16 12:47:11 +01:00
Pierre-Louis Mercereau
b1c6eb69c0 feat: 🎸 Allow wildcards and other matchings in allowed urls 2022-11-16 12:41:29 +01:00
Pierre-Louis Mercereau
c85a4d5e6b Merge branch 'main' into refactor/grant 2022-11-15 14:29:29 +01:00
Pierre-Louis Mercereau
62beaf4cd2 refactor: avoid single file in a directory 2022-11-15 14:27:12 +01:00
Pierre-Louis Mercereau
24fcc609fa chore: 🤖 adapt tests 2022-11-15 14:11:11 +01:00
Pierre-Louis Mercereau
daf3429d6d refactor: error handling, cleanup, explain 2022-11-15 14:03:24 +01:00
Pierre-Louis Mercereau
abc91fd2f4 refactor: append custom scopes 2022-11-15 12:41:44 +01:00
Pierre-Louis Mercereau
75a486fca7 refactor: fetch google oauth's refresh token 2022-11-15 12:20:28 +01:00
Pierre-Louis Mercereau
90afa95210 refactor: complete Apple Oauth with Grant 2022-11-15 10:48:11 +01:00
David Barroso
fe1de57395 fix: set a sane value for MaxMultipartMemory (#133) 2022-11-15 08:31:46 +01:00
Pierre-Louis Mercereau
f623d341fe refactor: 💡 prepare Apple Grant 2022-11-14 19:12:45 +01:00
Pierre-Louis Mercereau
8e3199a7bb refactor: windowslive grant 2022-11-14 16:37:19 +01:00
Pierre-Louis Mercereau
f104076de2 refactor: twitter grant 2022-11-14 15:23:48 +01:00
Pierre-Louis Mercereau
6889347930 refactor: twitch grant 2022-11-14 14:46:51 +01:00
Pierre-Louis Mercereau
5dc415b06b refactor: spotify grant 2022-11-14 13:24:19 +01:00
Pierre-Louis Mercereau
93bf34ab9a refactor: strava grant 2022-11-14 13:02:20 +01:00
Pierre-Louis Mercereau
3f397cd7ed refactor: bitbucket grant 2022-11-14 12:25:42 +01:00
Pierre-Louis Mercereau
114df9b884 refactor: discord grant 2022-11-14 11:41:36 +01:00
Pierre-Louis Mercereau
ec13fea58f refactor: remove useless code 2022-11-14 11:12:30 +01:00
Pierre-Louis Mercereau
5238bf8b0e refactor: gitlab grant 2022-11-14 11:10:53 +01:00
Pierre-Louis Mercereau
1570ed4ff4 refactor: linkedin grant 2022-11-14 10:34:44 +01:00
David Barroso
7381b3c72d fix: detect check constraint errors properly (#131) 2022-11-11 13:04:55 +01:00
David Barroso
4282ea68ca feat: insert more metadata when initializing files on upload (#130) 2022-11-11 11:58:08 +01:00
David Barroso
6ff55c24b6 fix: compare IDs correctly when dealing with broken-metadata and orphan files (#129) 2022-11-11 11:56:40 +01:00
Pierre-Louis Mercereau
6abc99f731 Merge branch 'fix-case-sensitive-redirects' 2022-11-10 16:45:40 +01:00
Linden
a94ca9a0b3 fix: match lowercase redirectTo but preserve case-insensitivity 2022-11-10 16:44:45 +01:00
Linden
1ead391321 fix: make redirectTo case-insensitive
fixes https://github.com/nhost/hasura-auth/issues/273
2022-11-10 16:44:45 +01:00
Pierre-Louis Mercereau
5034848e86 chore: also make AUTH_CLIENT_URL case insensitive 2022-11-10 16:43:58 +01:00
Pierre-Louis Mercereau
f9b51c3cb2 docs: correct changelog 2022-11-10 16:33:21 +01:00
Linden
55ad462398 fix: match lowercase redirectTo but preserve case-insensitivity 2022-11-09 13:26:01 -08:00
Linden
629ed73dc1 fix: make redirectTo case-insensitive
fixes https://github.com/nhost/hasura-auth/issues/273
2022-11-09 13:03:06 -08:00
Pierre-Louis Mercereau
54f12d8cac chore: minor stuff 2022-11-09 17:16:55 +01:00
Pierre-Louis Mercereau
a2cdb71187 refactor: remove old azuread code 2022-11-09 17:04:12 +01:00
Pierre-Louis Mercereau
80d93299cb refactor: implement Azure AD in Grant 2022-11-09 16:57:25 +01:00
Pierre-Louis Mercereau
e40a613e98 chore: changes 2022-11-09 15:44:09 +01:00
Asen Lekov
e83359a8af feat(sms): ability to set test phone numbers
Test phone numbers does not require provider to be set.
This gives a way to easily develop your apps and
sign in flow without charging or using trial credits.
The SMS template is logged with the verification code,
so developers can also preview them.
2022-11-09 09:10:37 +02:00
Asen Lekov
8221458311 fix(otp): increase OTP secret entropy to 256 bits 2022-11-08 22:28:43 +01:00
Pierre-Louis Mercereau
0d54500f16 ci: 🎡 re-order allowed roles in test snapshots 2022-11-08 22:26:42 +01:00
Pierre-Louis Mercereau
49ffdf8013 refactor: 💡 move 4 providers to Grant 2022-11-08 22:08:47 +01:00
Pierre-Louis Mercereau
8244eafccd chore: remove unused import 2022-11-07 10:46:53 +01:00
Pierre-Louis Mercereau
76337388a7 chore: provider more details about the oauth callback error 2022-11-07 10:46:53 +01:00
Pierre-Louis Mercereau
026f48f77b fix: redirect oauth errors/cancellations 2022-11-07 10:46:53 +01:00
David Barroso
744d7394e0 Update openapi.yaml (#127) 2022-11-04 09:10:28 +01:00
David Barroso
9349d30889 fix: allow updating files that aren't uploaded (#126) 2022-11-04 09:08:11 +01:00
Pierre-Louis Mercereau
b01b60bf62 refactor: fall back to error.message 2022-11-02 17:14:00 +01:00
Pierre-Louis Mercereau
b6cb7f7a77 fix: log metadata error even when no response exist 2022-11-02 17:14:00 +01:00
Pierre-Louis Mercereau
dc0bb3756e docs: ✏️ Add details about Gravatar environment variables 2022-11-02 17:09:42 +01:00
dependabot[bot]
5b8ac94b82 chore: bump nixbuild/nix-quick-install-action from 18 to 19 (#125)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 18 to 19.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v18...v19)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 08:19:05 +01:00
Pierre-Louis Mercereau
ebb218ed57 chore: will work even better when the test is adjusted too... 2022-10-31 08:04:38 +01:00
Pierre-Louis Mercereau
98f40cf5ab chore: typo 2022-10-31 08:04:38 +01:00
Pierre-Louis Mercereau
22ac10156c fix: return Have I Been Pwned error message 2022-10-31 08:04:38 +01:00
David Barroso
656d563ca4 chore: update deps (#123) 2022-10-28 10:44:42 +02:00
David Barroso
097abb4617 fix: protect ops endpoints requiring admin (#122)
* fix: protect ops endpoints requiring admin
2022-10-28 10:40:51 +02:00
dependabot[bot]
da8215a1c2 chore: bump cachix/cachix-action from 11 to 12 (#121)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 11 to 12.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v11...v12)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-28 10:36:10 +02:00
Pierre-Louis Mercereau
258015208f fix: tell why Hasura can't be reached 2022-10-27 14:09:58 +02:00
Pierre-Louis Mercereau
347ee4db92 feat: 🎸 Upsert roles from AUTH_USER_DEFAULT_ALLOWED_ROLES
When starting the server, all the roles defined in
`AUTH_USER_DEFAULT_ALLOWED_ROLES` are upserted into the `auth.roles`
table
2022-10-26 11:42:34 +02:00
Pierre-Louis Mercereau
9ab33cdc1b docs: ✏️ remove unued env var from the .env example 2022-10-26 11:42:34 +02:00
Pierre-Louis Mercereau
d47bffbb7a chore: 🤖 use graphql.config.js for both VS code and codegen 2022-10-26 11:42:34 +02:00
Johan Eliasson
741d324c79 update comment 2022-10-25 22:13:52 +02:00
Sean Radigan
9da2e8c4e1 added x-hasura-role to allowed headers in CORS (#120)
Co-authored-by: Sean Radigan <seanbreaksthings@tuta.io>
2022-10-25 10:16:04 +02:00
Jeff Loiselle
7dbdc85ec0 Update README.md (#117) 2022-10-21 09:56:20 +02:00
Johan Dahlborg
e508bb3911 Update docs/configuration.md
Co-authored-by: Johan Eliasson <johan@eliasson.me>
2022-10-19 22:58:31 +02:00
Johan Dahlborg
73db3aa659 Update environment variables link 2022-10-19 22:58:31 +02:00
Nicolas Bourdin
4af169ef05 Fix Readme wrong link for webauthn 2022-10-19 22:57:33 +02:00
Pierre-Louis Mercereau
df01cbe148 chore: release v0.15.0 2022-10-18 13:55:31 +02:00
Pierre-Louis Mercereau
1fd1170342 Merge branch 'logging' 2022-10-18 13:31:05 +02:00
Pierre-Louis Mercereau
5859077e0c docs: custom claims and json columns 2022-10-18 13:29:57 +02:00
Pierre-Louis Mercereau
5a26fc953d test: should add a custom claim from a field of the metadata column 2022-10-18 13:29:57 +02:00
Pierre-Louis Mercereau
179d96ad93 fix: use the metadata column in custom claims 2022-10-18 13:29:57 +02:00
Pierre-Louis Mercereau
e0024ba91b chore: keep ? or # in obfuscated url 2022-10-17 17:06:30 +02:00
Pierre-Louis Mercereau
5a4f35f2d8 Merge branch 'secure-logging' into logging 2022-10-17 16:52:38 +02:00
Pierre-Louis Mercereau
2159f19bac chore: adjust format 2022-10-17 16:52:00 +02:00
dependabot[bot]
1b6fcb1573 chore: bump cachix/cachix-action from 10 to 11 (#116)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 10 to 11.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v10...v11)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-13 10:05:23 +02:00
Pierre-Louis Mercereau
93b659f11f chore: 🤖 merge branch 'main' into logging 2022-10-12 17:24:57 +02:00
Pilou
34404c23e4 Update src/utils/hasura-metadata/api.ts
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-10-12 17:23:15 +02:00
Pilou
b081676f92 Update src/utils/hasura-metadata/api.ts
Co-authored-by: Johan Eliasson <johan@nhost.io>
2022-10-12 17:23:15 +02:00
Pierre-Louis Mercereau
728f35bc6b feat: 🎸 improve metadata application and startup time 2022-10-12 17:23:15 +02:00
Pierre-Louis Mercereau
8606ed3040 chore: export-patch-replace, without real patch 2022-10-12 17:23:15 +02:00
dependabot[bot]
a9f6b098a0 chore: bump nixbuild/nix-quick-install-action from 17 to 18 (#115)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 17 to 18.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v17...v18)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-11 14:48:24 +02:00
Pierre-Louis Mercereau
6906ee797e refactor: hide headers and query params 2022-10-10 15:32:14 +02:00
Pierre-Louis Mercereau
637a48eb10 style: phrasing 2022-10-10 14:29:52 +02:00
Pierre-Louis Mercereau
40ecd77001 Merge branch 'main' into logging 2022-10-10 14:28:25 +02:00
Pierre-Louis Mercereau
f452c46899 refactor: use skip instead of ignoreRoute 2022-10-10 14:17:18 +02:00
Pierre-Louis Mercereau
8972912034 fix: 🐛 remove wrong email-template warning
 Closes: #168
2022-10-10 13:58:38 +02:00
Pierre-Louis Mercereau
7493ad2663 chore: release v0.14.0 2022-10-07 10:52:15 +02:00
Yannick Galatol
c7247ccd0b feat(provider): add azure ad provider 2022-10-07 10:50:25 +02:00
Pierre-Louis Mercereau
370baa12e9 refactor: simplify and document 2022-10-05 21:59:38 +02:00
Pierre-Louis Mercereau
c1f82c4503 fix: 🐛 capture unhandled errors 2022-10-05 16:38:25 +02:00
Pierre-Louis Mercereau
4bccab8794 feat: 🎸 Improve logging 2022-10-05 16:37:22 +02:00
David Barroso
2eb2eb7d81 chore: update dependencies (#112) 2022-10-03 13:28:48 +02:00
David Barroso
7500dd4d61 fix: read config flag correctly (#111) 2022-10-03 13:28:40 +02:00
Apperside
c90629e66a Add clarification
Added a clarification about how to build the json object passed to `AUTH_JWT_CUSTOM_CLAIMS` environement variable
2022-09-29 15:32:21 +02:00
Pierre-Louis Mercereau
3005ac148d chore: release v0.13.2 2022-09-28 14:45:37 +02:00
Pierre-Louis Mercereau
5939bd81c1 fix: drop authenticators inconsistency safely 2022-09-28 14:44:30 +02:00
Pierre-Louis Mercereau
cd1d83566a chore: release v0.13.1 2022-09-27 17:04:38 +02:00
Pierre-Louis Mercereau
374415289b fix: don't drop inconsitencies 2022-09-27 17:00:18 +02:00
Pierre-Louis Mercereau
4d7f19fb98 chore: release v0.13.0 2022-09-23 10:58:43 +02:00
Pierre-Louis Mercereau
bc9282bc23 refactor: destructure 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
8cae5dc1d5 chore: safe boolean check 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
598819aba2 chore: correct type 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
031246d627 chore: remove wrong type 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
0318f21898 refactor: drop inconsistencies if with old table 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
31543a6993 refactor: 💡 rename authenticators to security keys 2022-09-23 10:49:45 +02:00
Pierre-Louis Mercereau
cf5ff651cc Merge branch 'main' into webauthn-signup 2022-09-22 10:48:11 +02:00
Pierre-Louis Mercereau
2371fdc917 fix: 🐛 Use client hostname as RP ID 2022-09-22 09:59:37 +02:00
Pierre-Louis Mercereau
3d78c64c45 docs: add webauthn to README 2022-09-22 09:20:46 +02:00
Pierre-Louis Mercereau
b49d4f70c7 fix: 🐛 fetch profile from WorkOS oauth connection 2022-09-21 20:10:39 +02:00
Pierre-Louis Mercereau
76ea376794 docs: add webauthn signup sequence diagram 2022-09-21 15:48:35 +02:00
Pierre-Louis Mercereau
c5c7d4ca2d refactor: 💡 simplify signup payloads 2022-09-21 14:51:07 +02:00
Pierre-Louis Mercereau
a7af5ed39e docs: ✏️ update openapi specs 2022-09-21 12:30:02 +02:00
Pierre-Louis Mercereau
6e0a27695d refactor: 💡 catch errors 2022-09-21 12:22:19 +02:00
Pierre-Louis Mercereau
9236d0a6f1 refactor: allow other webauthn signup attempts 2022-09-21 10:59:42 +02:00
Pierre-Louis Mercereau
c96879e933 refactor: adjustments 2022-09-20 22:46:11 +02:00
Pierre-Louis Mercereau
9600923c11 chore: remove eslint-ignore line 2022-09-20 15:27:28 +02:00
Pierre-Louis Mercereau
8982a497df fix: webauthn signup endpoints 2022-09-20 15:24:56 +02:00
Pierre-Louis Mercereau
fac7337b5c docs: add nickname to db schema 2022-09-19 13:43:52 +02:00
Pierre-Louis Mercereau
fd04a9f7bc chore: release v0.12.0 2022-09-16 12:41:07 +02:00
Pierre-Louis Mercereau
bd3279a42e docs: remove AUTH_EMAIL_TEMPLATE_FETCH_URL from env var list 2022-09-16 12:37:26 +02:00
Pierre-Louis Mercereau
4067c03385 fix: 🐛 deprecate AUTH_EMAIL_TEMPLATE_FETCH_URL 2022-09-16 12:37:26 +02:00
Pierre-Louis Mercereau
4418bd0b28 docs: add non-empty callback 2022-09-16 12:36:57 +02:00
Pierre-Louis Mercereau
3e55b9e11c fix: 🐛 don't break reditection with redirectTo and params
 Closes: #233
2022-09-13 14:17:04 +02:00
Pierre-Louis Mercereau
7a129f6cf0 fix: 🐛 don't add custom claims when null/undefined values
and accept JSONata values that contains [] so singleton are returned as
arrays
2022-09-13 11:01:59 +02:00
Pierre-Louis Mercereau
664e5b143e test: jsonata array 2022-09-13 11:01:59 +02:00
Pierre-Louis Mercereau
8c1ce75d07 docs: ✏️ correct jsonata array notation 2022-09-13 11:01:59 +02:00
Pierre-Louis Mercereau
719fb221cd test: 💍 try empty or singleton array custom claims 2022-09-13 11:01:59 +02:00
Asen Lekov
e99ec64bca feat(sms): support for templates for the sms message (#217)
* feat(sms): support for templates for the sms message

* refactor: remove set of APP_NAME env

* test(sms): ensure not using fallback message always
2022-09-13 10:54:07 +02:00
Pierre-Louis Mercereau
fd1aacec79 chore: release v0.11.0 2022-09-08 12:14:39 +02:00
Pierre-Louis Mercereau
d1ed7eafda refactor: no AUTH_WEBAUTHN_RP_ID anywhere 2022-09-08 11:47:34 +02:00
Pierre-Louis Mercereau
c89b224349 refactor(webauthn): tests 2022-09-08 11:29:01 +02:00
Pierre-Louis Mercereau
50126b483a fix(webauthn): use the server url hostname as RP 2022-09-08 11:09:55 +02:00
Pierre-Louis Mercereau
088cde56f2 refactor: adjust test 2022-09-07 21:49:16 +02:00
Pierre-Louis Mercereau
71c858e4c6 Merge branch 'main' into webauthn-use-server-rp 2022-09-07 13:08:56 +02:00
Pierre-Louis Mercereau
b055c575bf refactor: default workos org/domain/connection 2022-09-07 12:55:51 +02:00
Pierre-Louis Mercereau
6a690601f5 refactor: validate workos params 2022-09-07 12:55:51 +02:00
Pierre-Louis Mercereau
ab359713a2 feat: workos oauth provider 2022-09-07 12:55:51 +02:00
Pierre-Louis Mercereau
ee0ad52e73 refactor: use dedicated webauthn error messages 2022-09-07 12:54:58 +02:00
Johan Eliasson
af5d2c2b94 adding profile variable (#227) 2022-09-06 21:19:40 +02:00
Pierre-Louis Mercereau
7f3944d0ad fix(webauthn): use the hostname of AUTH_SERVER_URL as a default relying party 2022-09-05 16:07:27 +02:00
Pierre-Louis Mercereau
4f166b9259 refactor: adjust after review 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
b95b4c458a docs: move away comment from tsdoc 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
a02fc72288 refactor: remove todo from TSDoc comments 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
a943c423d5 docs: update openapi specs 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
224e9902b4 feat: remove webauthn signup endpoints 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
f2cb098136 fix: send id+nickname when adding a security key 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
1d21706fb4 refactor: minor improvement 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
457fafd6a0 feat(webauthn): add optional authenticator nickname 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
b5933359ce test: adjust tests to less restrictive webauthn policy 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
b750784c57 docs: generate openapi specs 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
bdff4fec24 fix: broaden WebAuthn authenticators & algorithms 2022-09-05 15:11:23 +02:00
Pierre-Louis Mercereau
0c2a48ca63 refactor: improve typings 2022-08-31 09:04:57 +02:00
David Barroso
85989f47ba feat: allow configuring apiRootPrefix (#109)
* feat: allow configuring apiRootPrefix

* asd
2022-08-29 15:28:30 +02:00
Johan Eliasson
0f597c1c0c latest hasura version (#108) 2022-08-23 17:05:51 +02:00
Johan Eliasson
fd6bba889f copy update 2022-08-23 07:28:46 +02:00
dependabot[bot]
c6151c9638 chore: bump nixbuild/nix-quick-install-action from 16 to 17 (#107)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 16 to 17.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v16...v17)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-19 07:56:57 +02:00
Pierre-Louis Mercereau
db8e3a2832 docs: typos 2022-07-13 21:18:50 +02:00
Pierre-Louis Mercereau
bc416fda76 docs: update PR template 2022-07-13 21:18:50 +02:00
Pierre-Louis Mercereau
d06eee5f2d docs: rephrase 2022-07-13 21:18:50 +02:00
Pierre-Louis Mercereau
6b776eb9f0 docs: rephrase 2022-07-13 21:18:50 +02:00
Pierre-Louis Mercereau
4857063b14 docs: add PR template 2022-07-13 21:18:50 +02:00
Pierre-Louis Mercereau
142f2460dc docs: add section break 2022-07-13 13:03:46 +02:00
Pierre-Louis Mercereau
1f8ee0c688 chore: update swagger specs, codegen and readme 2022-07-13 12:50:10 +02:00
David Barroso
70c0cc53bb fix: download file completely from s3 if Range+image manip opts are specified (#101) 2022-07-13 12:09:04 +02:00
David Barroso
f32a0b1a1d fix: fastly middleware: dont set surrogate control header for presigned urls (#103) 2022-07-13 12:05:37 +02:00
Pierre-Louis Mercereau
4533b0834a chore: release v0.10.0 2022-07-13 10:01:56 +02:00
Asen Lekov
5e7b6e0e14 fix(hasura-actions): make possible to use hasura-auth APIs in hasura actions
ref #57
2022-07-13 09:38:02 +02:00
Pierre-Louis Mercereau
6daeeee1ef fix: remove comment on the auth schema
The Postgres user that runs the user should be able to run the migrations even if they are not the
owner of the auth schema.
2022-07-12 08:40:02 +02:00
Siarhei Lipchyk
0ea78379af Fix the error message (#100) 2022-07-10 11:40:49 +02:00
Pierre-Louis Mercereau
dec3247e32 Merge branch 'main' into refactor/bump-jose 2022-07-05 22:12:21 +02:00
Pierre-Louis Mercereau
7bd478194d Merge branch 'webauthn' 2022-07-05 22:08:39 +02:00
Pierre-Louis Mercereau
e26f5b7e84 Merge branch 'webauthn' of https://github.com/dodi-smart/hasura-auth 2022-07-05 19:57:04 +02:00
Pierre-Louis Mercereau
6feeb0b1a5 refactor: simplify AUTH_WEBAUTHN_RP_ORIGINS 2022-07-05 19:48:24 +02:00
Asen Lekov
81fe46d6bf Update docs/configuration.md
Co-authored-by: Pilou <24897252+plmercereau@users.noreply.github.com>
2022-07-05 20:44:22 +03:00
Pierre-Louis Mercereau
9707c06dae refactor: cast env vars, don't show default values 2022-07-05 19:10:08 +02:00
Asen Lekov
8656add8f6 Update .env.example
Co-authored-by: Pilou <24897252+plmercereau@users.noreply.github.com>
2022-07-05 19:27:57 +03:00
Pierre-Louis Mercereau
686a85ea77 Merge branch 'main' into refactor/bump-jose 2022-07-05 17:15:22 +02:00
Pierre-Louis Mercereau
6d859a61c8 refactor: revert castStringArrayEnv logic 2022-07-05 17:04:37 +02:00
Pierre-Louis Mercereau
6f7be225d1 build: force node v16 2022-07-05 17:01:00 +02:00
Pierre-Louis Mercereau
876fda6655 ci: run tests on Node 16 2022-07-05 16:56:17 +02:00
Pierre-Louis Mercereau
fdd3d02ac5 build: upgrade Node image to v16 2022-07-05 16:52:26 +02:00
Pierre-Louis Mercereau
3a5bb8ed77 ci: add server url 2022-07-05 16:40:18 +02:00
Pierre-Louis Mercereau
575c0f8073 refactor: minor improvement 2022-07-05 16:37:50 +02:00
Pierre-Louis Mercereau
605cbcf62f refactor: bump jose to latest version, and code improvement 2022-07-05 15:28:38 +02:00
Asen Lekov
f979f1b953 docs(webauthn): wording 2022-07-05 11:41:16 +03:00
Asen Lekov
4e0c4bffdc docs(webauthn): fix typos 2022-07-05 11:40:12 +03:00
Asen Lekov
50ba9e4403 test(webauthn): fix tests and bump simplewebautn dependency 2022-07-05 11:30:13 +03:00
Pierre-Louis Mercereau
17ef26d1ad Merge branch 'Svarto-feat/change-password-with-ticket' 2022-07-05 10:07:04 +02:00
Asen Lekov
b22820b6a2 refactor(webauthn): change webauthn authentication to more restrictive approach 2022-07-04 21:54:25 +03:00
Svarto
30002238fa feat: change password with ticket 2022-07-03 20:39:14 +02:00
Svarto
067748987e Merge branch 'nhost:main' into feat/change-password-with-ticket 2022-07-03 19:48:33 +02:00
Svarto
8e14d051c4 removed superfluous rows 2022-07-03 19:40:55 +02:00
Svarto
11eba3381a nested conditionals to improve performance and avoid multiple GraphQL calls 2022-07-03 19:37:01 +02:00
Svarto
65cf1f8c10 git status 2022-07-03 19:35:16 +02:00
Svarto
9de2fbed47 nest conditions to improve performance and reduce number of GraphQL calls 2022-07-03 19:31:23 +02:00
Pilou
676d6cade5 docs: add missing env var 2022-07-01 23:29:17 +02:00
Asen Lekov
c2a1615dc6 test(webauthn): cross-platform tests 2022-07-01 21:13:56 +03:00
Asen Lekov
077bd17182 fix(webauthn): disable unauthorized add of subsequent authenticator 2022-07-01 20:37:06 +03:00
Asen Lekov
21820234c7 docs(webauthn): update decumentation 2022-07-01 17:47:14 +03:00
Asen Lekov
2d79782a88 docs(webauthn): add table to er diagram 2022-07-01 17:33:45 +03:00
Asen Lekov
02a8febe98 refactor(webauthn): better handling server start up and signup/signin 2022-07-01 17:21:42 +03:00
Asen Lekov
cce39ef820 test(webauthn): fix tests 2022-07-01 17:01:03 +03:00
Asen Lekov
3a375135a6 docs(webauthn): added sequence diagrams 2022-07-01 14:29:34 +03:00
Asen Lekov
cb9b7fbf7c chore(webauthn): update webauthn types 2022-07-01 14:29:33 +03:00
Asen Lekov
5c9625a246 fix(webauthn): syntax error because of GitHub suggestions applied 2022-07-01 14:29:33 +03:00
Asen Lekov
113a9a96e9 docs(webauthn): update environmental variables docs 2022-07-01 14:29:33 +03:00
Asen Lekov
c08167dd73 chore(webauthn): rename webauth migration and add comment on table 2022-07-01 14:29:15 +03:00
Asen Lekov
7294c87d29 Merge branch 'main' into webauthn
# Conflicts:
#	package.json
#	pnpm-lock.yaml
2022-06-30 21:08:42 +03:00
Asen Lekov
90c3b55932 Merge branch 'main' into webauthn 2022-06-30 21:04:41 +03:00
Asen Lekov
ba96e0e467 Apply suggestions from code review
Co-authored-by: Pilou <24897252+plmercereau@users.noreply.github.com>
2022-06-30 20:57:38 +03:00
Pierre-Louis Mercereau
d5ca328ceb chore: update changelog 2022-06-30 14:21:14 +02:00
Pierre-Louis Mercereau
48c812cea7 chore: release v0.9.3 2022-06-30 14:18:51 +02:00
Johan Eliasson
4d17a8763d merge 2022-06-30 13:39:12 +02:00
Johan Eliasson
534552e788 pnpm lock file 2022-06-30 13:33:33 +02:00
Johan Eliasson
15debef72c Merge branch 'main' into fix/apple-signin 2022-06-30 11:58:34 +02:00
Johan Eliasson
84d969d3cd added missing package 2022-06-30 11:39:09 +02:00
Pierre-Louis Mercereau
d6261688dd chore: rename migration file 2022-06-28 13:16:09 +02:00
Pierre-Louis Mercereau
8d821b3c37 docs: keep comments on tables 2022-06-28 13:16:09 +02:00
Pierre-Louis Mercereau
0b926e3d16 docs: complete comments 2022-06-28 13:16:09 +02:00
Pierre-Louis Mercereau
facec9771c docs: add ddl comments 2022-06-28 13:16:09 +02:00
Pierre-Louis Mercereau
aeea1d3359 feat: SQL comments on schema, tables, and colums 2022-06-28 13:16:09 +02:00
Pierre-Louis Mercereau
dc429cb5b6 test: remove null values from custom claims 2022-06-28 09:26:18 +02:00
Pierre-Louis Mercereau
35bf1863f3 fix: do not add null values to custom claims 2022-06-28 09:26:18 +02:00
Pierre-Louis Mercereau
a7072d96c9 fix: use the metadata field in custom claims 2022-06-28 09:26:06 +02:00
Asen Lekov
71cff8ac0a Merge branch 'main' into webauthn 2022-06-23 18:47:20 +03:00
Pierre-Louis Mercereau
942c0c7936 chore: release v0.9.2 2022-06-22 12:46:57 +02:00
Pierre-Louis Mercereau
57bae7fe5c docs: remove link to docs.nhost.io 2022-06-22 12:03:07 +02:00
Pierre-Louis Mercereau
91e0fbf6f3 chore: remove double dash 2022-06-22 11:41:28 +02:00
Pierre-Louis Mercereau
d8ac10a673 docs: correct stars when required 2022-06-22 11:30:07 +02:00
Pierre-Louis Mercereau
a23849a948 chore: pnpm 7 2022-06-22 11:27:06 +02:00
Pierre-Louis Mercereau
9b12c67a4e docs: docgen 2022-06-22 11:26:53 +02:00
Pierre-Louis Mercereau
65a10f623d docs: about sequence diagrams 2022-06-22 11:20:37 +02:00
Pierre-Louis Mercereau
2a30399653 docs: corrections 2022-06-22 11:20:37 +02:00
Pierre-Louis Mercereau
3ae8731a8d docs: titles and links 2022-06-22 11:20:37 +02:00
Pierre-Louis Mercereau
70e1926aeb docs: from docs.nhost.io, plus workflows et al. 2022-06-22 11:20:37 +02:00
Asen Lekov
340134de91 test(webauth): add tests 2022-06-18 16:57:43 +03:00
Asen Lekov
adb021f7c5 chore(webauthn): add env variables
ENV variables and startup checks. Also refactor a bit.
2022-06-18 16:57:16 +03:00
Asen Lekov
1717185a74 chore(webauth): add migrations 2022-06-17 21:12:24 +03:00
Asen Lekov
8a104c5b04 docs(webauthn): update openapi 2022-06-17 19:56:12 +03:00
Asen Lekov
cbe86e31b2 chore(webauthn): webauth supports now email verification 2022-06-17 19:40:03 +03:00
Asen Lekov
0ae3db9a09 chore(webauthn): improvements api and behaviour changes
now user can register multiple devices using only email
2022-06-17 18:28:08 +03:00
Asen Lekov
2e18108961 feat(auth): add initial FIDO2 Webauthn authentication method
close #153
2022-06-17 17:27:02 +03:00
Johan Eliasson
16d5b57d60 added small tests + clear ticket after usage 2022-06-17 16:25:47 +02:00
dependabot[bot]
1323f5c73b chore: bump nixbuild/nix-quick-install-action from 15 to 16 (#94)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 15 to 16.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v15...v16)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-17 09:46:50 +02:00
Johan Eliasson
0b0efc947d small refactor + prettier 2022-06-17 09:43:40 +02:00
Pierre-Louis Mercereau
064b15be7d fix: forbid anonymous users to change email or password, or to activate MFA 2022-06-17 09:25:48 +02:00
Svarto
355d5ca8cf added tests 2022-06-16 15:45:09 +02:00
Svarto
5653a4eecd cleaned up TypeScript 2022-06-16 13:04:16 +02:00
Pierre-Louis Mercereau
cf51d23935 chore: update openapi specs 2022-06-14 21:21:36 +02:00
Pierre-Louis Mercereau
38e9e596fd chore: update changelog 2022-06-14 18:39:58 +02:00
Pierre-Louis Mercereau
fde36e203c chore: release v0.9.1 2022-06-14 18:38:38 +02:00
Pierre-Louis Mercereau
acb9e3907f refactor: correct test, and improve naming 2022-06-13 08:53:51 +02:00
Pierre-Louis Mercereau
7d24e55d3a fix: do not actually follow redirection when redirectTo is invalid
(except for GET requests: /verify and social providers)
2022-06-13 08:53:51 +02:00
Matthew Millar
1f12a5351d fix: workaround for outlook safelinks
fixes #189
2022-06-12 21:30:10 +02:00
David Barroso
0520dcbbbc chore: update deps (#86) 2022-06-10 09:29:52 +02:00
dependabot[bot]
6f9bcf4564 chore: bump nixbuild/nix-quick-install-action from 14 to 15 (#92)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 14 to 15.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v14...v15)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-10 09:16:12 +02:00
David Barroso
425946137c fix: this was wrongly misinterpreted as minutes (#91) 2022-06-10 09:16:01 +02:00
Johan Eliasson
d764826dd3 Update README.md 2022-06-08 20:58:11 +02:00
Pierre-Louis Mercereau
9f5cbbcd14 chore: rename EmailOptions to EmailLocals 2022-06-08 09:58:03 +02:00
Pierre-Louis Mercereau
d2235e9f54 fix: add email and newEmail variables to all email templates 2022-06-08 09:58:03 +02:00
Svarto
ca0fff0a4f added corrections according to #186 2022-06-06 11:20:44 +02:00
Svarto
73b1569af3 enabled change password to work with ticket 2022-06-06 09:18:04 +02:00
Pierre-Louis Mercereau
856640128e chore: adjust changelog 2022-06-02 15:17:39 +02:00
Pierre-Louis Mercereau
2979ca3c5b chore: release v0.9.0 2022-06-02 15:16:17 +02:00
Pierre-Louis Mercereau
e6fff04154 refactor: use E.164 2022-06-02 15:11:43 +02:00
Pierre-Louis Mercereau
de55ad787d chore: revert 2022-06-02 15:11:43 +02:00
Pierre-Louis Mercereau
a9b2359b48 refactor: don't add missing + to phone number, and correct eslint 2022-06-02 15:11:43 +02:00
Pierre-Louis Mercereau
70edaca1e4 fix: validate phone number and transform them in the international format 2022-06-02 15:11:43 +02:00
David Barroso
91d9e4d41a chore: pin minio to make tests more reliable (#90) 2022-06-02 13:14:47 +02:00
dependabot[bot]
56c641f6e7 chore: bump nixbuild/nix-quick-install-action from 13 to 14 (#88)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 13 to 14.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v13...v14)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-02 08:34:23 +02:00
Pierre-Louis Mercereau
9a9ccae34e docs: improve comment 2022-06-01 20:15:07 +02:00
Pierre-Louis Mercereau
ad521551ab revert: add clientUrl back to emails 2022-06-01 20:15:07 +02:00
Pierre-Louis Mercereau
73c02629bb feat: allow any redirectTo when no AUTH_CLIENT_URL is set
Up to now, `AUTH_CLIENT_URL` had to be set to support transactional emails and Oauth. Now, when not
set, such feature will work as long as the `redirectTo` option is sent over by the client to Hasura
Auth. It is usefull when one wants any client to work.
2022-06-01 20:15:07 +02:00
Pierre-Louis Mercereau
299ff8da2c chore: dev-env- instead of compose- 2022-06-01 15:18:49 +02:00
Pierre-Louis Mercereau
fd836232c1 chore: correct make scripts dependencies 2022-06-01 15:18:49 +02:00
Pierre-Louis Mercereau
098730fd60 chore: simplify developers commands, including the generation of the OpenAPI specs 2022-06-01 15:18:49 +02:00
Pierre-Louis Mercereau
85d7cf19d8 manually update changelog 2022-06-01 09:09:04 +02:00
Pierre-Louis Mercereau
dddac91ac2 chore: release v0.8.1 2022-06-01 09:06:39 +02:00
Johan Eliasson
4c9641b71b patch: revert package updates 2022-06-01 08:57:16 +02:00
Johan Eliasson
627ad24f5b removed unused env var 2022-06-01 08:57:16 +02:00
Johan Eliasson
ae61717db7 update 2022-06-01 08:57:16 +02:00
Nicolas Bourdin
d2b6406237 fix readme typo 2022-05-30 08:44:43 +02:00
David Barroso
789f4a2e91 fix: dont require select:bucket permissions to delete files (#87) 2022-05-27 16:45:00 +02:00
David Barroso
1b3cfeff4e fix: set content-range accordingly if range requested with image manipulation (#85) 2022-05-27 11:44:53 +02:00
David Barroso
d17dc3ed80 fix: allow inserting files without requiring select permissions (#84) 2022-05-27 11:37:01 +02:00
David Barroso
b4b4fb4eea fix: remove /storage from the path (#83) 2022-05-24 16:54:39 +02:00
Pierre-Louis Mercereau
996f3f411c chore: release v0.8.0 2022-05-24 13:23:14 +02:00
Pierre-Louis Mercereau
b31b230a63 Merge branch 'main' into twilio-verify 2022-05-24 11:54:50 +02:00
David Barroso
de48ecdc28 feat: added integration with CDN Fastly (#77) 2022-05-24 09:53:17 +02:00
Pierre-Louis Mercereau
74087dda41 fix: return standard error codes in sms passwordless sign-in 2022-05-23 15:34:46 +02:00
Pierre-Louis Mercereau
e2eac3897a fix: check locales are not more than two characters 2022-05-23 15:34:34 +02:00
Pierre-Louis Mercereau
043657441c fix: check the new email is not already in use before changing it 2022-05-23 15:18:53 +02:00
Pierre-Louis Mercereau
b0cddaa74e chore: add typings 2022-05-23 15:05:31 +02:00
Pierre-Louis Mercereau
1a36115912 reactor: simplify 2022-05-23 14:50:30 +02:00
Asen Lekov
228a24b996 refactor(token): update refresh token expiry when get session 2022-05-23 14:50:30 +02:00
Asen Lekov
0a3457a100 feat(token): add verify token endpoint
closes #83
2022-05-23 14:50:30 +02:00
Asen Lekov
7583997e45 fix(token): do not create new refresh tokens all the time
use the existing refresh token instead until expire

fix #65
2022-05-23 14:50:30 +02:00
David Barroso
d8e68e59e7 chore: remove code duplication (#80) 2022-05-19 14:44:05 +02:00
David Barroso
2251e3a598 calculate presignedurls max-age using info in the signature to make sure they expire at the right time (#79) 2022-05-19 14:30:57 +02:00
David Barroso
de06fca938 feat: support downloading a range (#76) 2022-05-19 13:41:07 +02:00
David Barroso
72bc77de7f fix: treat conditional requests to s3 correctly when using presigned urls (#78) 2022-05-19 13:27:21 +02:00
David Barroso
88c5b49f00 chore: fix vips tests (#75) 2022-05-19 12:25:52 +02:00
Asen Lekov
c77e965c10 refactor(twilio): make twilio 'from' optional on startup 2022-05-11 19:58:15 +03:00
Asen Lekov
ade6087f27 refactor(twilio): check sms provider settings on startup
check if twilio configuration is valid on hasura-auth startup and refactor the code to refrect
assumed configured provider
2022-05-11 19:54:53 +03:00
Asen Lekov
363bbbceb3 Revert "Return signIn responses for passwordless"
This reverts commit 36938960e8.
2022-05-11 12:01:08 +03:00
dependabot[bot]
52fbd758cb chore: bump docker/setup-qemu-action from 1 to 2 (#71)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-10 10:56:09 +02:00
dependabot[bot]
e013c3b09e chore: bump docker/login-action from 1 to 2 (#72)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-10 10:56:00 +02:00
David Barroso
7ce5fdf39e replace govips with own bindings (#73) 2022-05-10 10:55:46 +02:00
Asen Lekov
d26259b860 Update sms.ts
On twilio sms failed delete only if user is newly created
2022-05-06 17:16:35 +03:00
Asen Lekov
36938960e8 Return signIn responses for passwordless
Closes #135
2022-04-30 15:30:41 +03:00
Asen Lekov
39cc32902e Check if user is disabled in passwordless sms
Closes #99
2022-04-30 15:26:35 +03:00
Asen Lekov
478af9fb62 Re-arrange consts 2022-04-30 14:39:54 +03:00
Asen Lekov
2ee4aa68f5 Add support for Twilio Verify
Based on the SID use messing or verify APIs
2022-04-30 14:32:11 +03:00
Pierre-Louis Mercereau
9c6d0f4ded chore: release v0.7.1 2022-04-28 14:08:15 +02:00
Pierre-Louis Mercereau
e6296fec49 chore: line break 2022-04-28 14:06:36 +02:00
Pierre-Louis Mercereau
09007c5c73 chore: send refresh token in both the hash and the query parameters 2022-04-28 14:06:36 +02:00
Pierre-Louis Mercereau
af8ea5097c feat: use query parameter instead of hash when adding the refresh token to an url 2022-04-28 14:06:36 +02:00
Pierre-Louis Mercereau
b9ea3e527a chore: release v0.7.0 2022-04-27 16:01:50 +02:00
Pierre-Louis Mercereau
5c3107e08e test: improve tests 2022-04-27 16:00:08 +02:00
Pierre-Louis Mercereau
9b88a91274 feat: use encoded redirectTo url value in email templates 2022-04-27 16:00:08 +02:00
Pierre-Louis Mercereau
3bf88d8a44 fix: don't fail when unknown options are present in the query parameters 2022-04-27 16:00:08 +02:00
Pierre-Louis Mercereau
d89561ac7f test: check the presence of errors in redirected urls 2022-04-27 16:00:08 +02:00
dependabot[bot]
c89df28521 chore: bump nixbuild/nix-quick-install-action from 12 to 13 (#65)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 12 to 13.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v12...v13)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-27 09:06:13 +02:00
David Barroso
8c8b2d7c6d chore: documentation (#64) 2022-04-26 16:24:25 +02:00
dependabot[bot]
f230ee75cb chore: bump github/codeql-action from 1 to 2 (#63)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-26 09:13:24 +02:00
David Barroso
a04e154bf5 fix: make flags more consumable (#61) 2022-04-25 14:43:24 +02:00
David Barroso
344870319c fix: replace imagemagick with libvips to increase performance (#60) 2022-04-25 12:44:09 +02:00
David Barroso
c96d4cdcbe fix: remove dependency between storage and auth (#59) 2022-04-22 14:38:06 +02:00
David Barroso
383920d593 fix: don't require permissions to see bucket information when retrieving files (#58) 2022-04-21 14:43:42 +02:00
Pierre-Louis Mercereau
11ffb96356 chore: release v0.6.3 2022-04-21 10:06:55 +02:00
Pierre-Louis Mercereau
d1c4c9bcb1 fix: filter internal user fields in session 2022-04-21 09:52:57 +02:00
Pierre-Louis Mercereau
249a156dd5 chore: release v0.6.2 2022-04-20 20:44:18 +02:00
Pierre-Louis Mercereau
96f9f41779 Merge branch '129-hasura-auth-container-fails-to-start-after-upgrade-from-v-to-v' 2022-04-20 18:58:52 +02:00
Pierre-Louis Mercereau
62d7f597e7 chore: remove duplicate line from last merge 2022-04-20 18:55:13 +02:00
Pilou
98fc05ff6a Merge branch 'main' into 129-hasura-auth-container-fails-to-start-after-upgrade-from-v-to-v 2022-04-20 16:43:21 +02:00
Pilou
6b1b5a493d Update CHANGELOG.md 2022-04-20 09:40:48 +02:00
Pierre-Louis Mercereau
be85edb75a chore: release v0.6.1 2022-04-20 09:33:55 +02:00
Pierre-Louis Mercereau
127824c0c4 Merge branch 'fix/remove-auth-host' 2022-04-20 09:31:32 +02:00
Pierre-Louis Mercereau
577f8bfb87 chore: merge main 2022-04-20 09:28:03 +02:00
Pierre-Louis Mercereau
7f5f6b2a54 refactor: simplify Joi redirectTo validation 2022-04-20 09:23:15 +02:00
Pierre-Louis Mercereau
dac0332a04 fix: allow redirectTo option to start with any AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS value 2022-04-20 09:23:15 +02:00
Pierre-Louis Mercereau
8bb351d55f perf: set AUTH_CLIENT_URL and AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS to lower case 2022-04-20 09:23:15 +02:00
Pierre-Louis Mercereau
2e1819d65a fix: fall back to AUTH_CLIENT_URL if the redirectTo option is invalid 2022-04-20 09:23:15 +02:00
Pierre-Louis Mercereau
99fd7603c5 fix: correct redirectTo
Allow redirection either starting with AUTH_CLIENT_URL or being strictly included in
AUTH_ACCESS_CONTROL_ALLOWED_REDIRECT_URLS. When no redirectTo is set, falls back to AUTH_CLIENT_URL

fix #137
2022-04-20 09:23:15 +02:00
Pierre-Louis Mercereau
80b4a3984c refactor: put the metadata log info at the very top of the function 2022-04-19 20:40:51 +01:00
Pierre-Louis Mercereau
be9d6bb81f refactor: correct logger messages 2022-04-19 20:40:51 +01:00
Pierre-Louis Mercereau
bd9b3618e9 fix: run a metadata reload before and after applying hasura-auth metadata
and also make sure metadata is reloaded if the metadata script failed in the
2022-04-19 20:40:51 +01:00
Pierre-Louis Mercereau
f420693f34 chore: rephrase comment 2022-04-19 13:17:12 +01:00
Pierre-Louis Mercereau
c172c8a55b perf: improve logginh on startup 2022-04-19 13:17:12 +01:00
Pierre-Louis Mercereau
b8811d1e16 docs: write a TODO that flags how big/slow the email-templates library is
maybe the latest v9 version is better than the v7 we are using
2022-04-19 13:17:12 +01:00
Pierre-Louis Mercereau
e00c073d55 perf: improve startup with async imports 2022-04-19 13:17:12 +01:00
Pierre-Louis Mercereau
cacce97573 fix: remove the AUTH_HOST environment variable
This parameter creates confusion between internal docker/k8s networks, host network, health check
without adding a clear value
2022-04-16 19:25:37 +01:00
Pierre-Louis Mercereau
9f4ef56b8e chore: rephrase comment 2022-04-15 20:23:12 +01:00
Pierre-Louis Mercereau
1c7c18fac8 perf: improve logginh on startup 2022-04-14 21:20:44 +01:00
Pierre-Louis Mercereau
b79cc458ec docs: write a TODO that flags how big/slow the email-templates library is
maybe the latest v9 version is better than the v7 we are using
2022-04-14 21:20:19 +01:00
Pierre-Louis Mercereau
97b2caa4a1 perf: improve startup with async imports 2022-04-14 21:19:17 +01:00
Johan Eliasson
fcce09f63d apple sign in works 2022-04-14 13:21:50 +02:00
Johan Eliasson
ba8fcd18d8 Merge branch 'main' into fix/apple-signin 2022-04-14 11:05:08 +02:00
David Barroso
e1ea387598 fix: use admin secret to update metadata when uploading files (#54) 2022-04-11 10:18:12 +02:00
David Barroso
e5857bc131 added constraint to allow setting only valid range for presignedURL expiration time (#55) 2022-04-11 09:49:27 +02:00
Johan Eliasson
02754a9312 Update README.md 2022-04-08 10:52:46 +02:00
David Barroso
8d061f712c connect to the schema when applying migrations so the schema_migrations table is created there too (#53) 2022-04-07 11:20:02 +02:00
Pierre-Louis Mercereau
c86ab0c216 chore: release v0.6.0 2022-04-06 10:41:51 +02:00
David Barroso
dd7bdccf24 fix: presigned urls (#51) 2022-04-06 09:52:28 +02:00
Pierre-Louis Mercereau
6ae1a58783 Merge branch '54-better-handling-for-email-types-and-templates' 2022-04-05 21:32:13 +02:00
Pierre-Louis Mercereau
739dc833f4 Merge branch 'main' into 54-better-handling-for-email-types-and-templates 2022-04-05 21:30:47 +02:00
Pierre-Louis Mercereau
a4ca42e780 fix: rename JWT claim x-hasura-isAnonymous to x-hasura-is-anonymous
By convention, Hasura claim names are kebab-case.

close #126
2022-04-05 21:02:38 +02:00
Pierre-Louis Mercereau
093b47f08d chore: remove duplicate EMAIL_TYPES 2022-04-05 20:59:30 +02:00
Pierre-Louis Mercereau
4d452d7d0b feat: add emailVerified, phoneNumber, phoneNumberVerified, and activeMfaType to User
See https://github.com/nhost/nhost/issues/306
2022-04-04 10:44:23 +02:00
Pierre-Louis Mercereau
6ce9d73046 chore: simplify 2022-04-04 10:31:46 +02:00
Pierre-Louis Mercereau
43161af21d chore: document, and rename the migration file to its original name when finisehd 2022-04-04 10:23:12 +02:00
Pierre-Louis Mercereau
6a0856a9e6 fix: revert 00002 migration name to previous name when migration fails because of it 2022-04-03 23:22:37 +02:00
Pierre-Louis Mercereau
4938b9fb51 docs: change docker-compose example to the same hasura version as used in the dev/test env 2022-04-03 23:20:08 +02:00
Pierre-Louis Mercereau
a2e0d2a677 fix: change default refresh token expiration to 30 days
fix #48
2022-04-01 22:05:15 +02:00
Pierre-Louis Mercereau
def75bdfd8 refactor: improve "email types" typings 2022-04-01 21:42:43 +02:00
Pilou
fdfa097f23 Update README.md 2022-04-01 08:49:05 +02:00
Pierre-Louis Mercereau
b4dfc35a71 docs: update changelog 2022-03-31 10:55:43 +02:00
Pierre-Louis Mercereau
143af704f5 chore: release v0.5.0 2022-03-31 10:51:49 +02:00
Pierre-Louis Mercereau
dc4a4126cd docs(swagger): correct anonymous signin response 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
ddba4b39f6 docs(swagger): add example to /version endpoint 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
5304e3b0fc docs: adapt swagger/openapi error codes 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
2483b78e19 refactor: deactivate AUTH_LOCALE_ALLOWED_LOCALES check 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
71b84905bb test: use status codes in tests 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
4c2150822b refactor: cosmetic changes
\
2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
6834e2d1f9 refactor: use http-status-codes for error codes and successful OK responses 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
3a29707329 refactor: adjust validations 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
a14d7a9389 feat: redirect errors to any payload with a redirectTo property 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
b7b19d919b refactor: improve registration options validation and defaults 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
6e4196dbed style: add columns to TODOs that are not related to the work in progress 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
ba1c9c0588 refactor: add joi validation 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
4f611a4143 refactor: restructure the utils/helpers files 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
d473b3e07f refactor(wip): move body/request validation schema to each route file 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
dd7b4db3e8 chore(wip): rename res.send('OK') to res.send('ok'), and add one missing sendError 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
735d71a8c8 refactor(wip): consolidate error messages 2022-03-31 10:13:28 +02:00
Pierre-Louis Mercereau
213e09db89 refactor(wip): streamline request validation 2022-03-31 10:13:28 +02:00
David Barroso
de2a54c519 use same path as old storage (#50) 2022-03-31 09:14:41 +02:00
David Barroso
b0777bd423 use admin secret when reading bucket information as users dont need access to it (#48) 2022-03-31 09:14:30 +02:00
Pierre-Louis Mercereau
4f903332f4 ci: deactivate AUTH_LOCALE_ALLOWED_LOCALES in GH action 2022-03-30 16:41:21 +02:00
David Barroso
92313744ce add missing headers to CORS (#49) 2022-03-30 14:39:24 +02:00
Pierre-Louis Mercereau
7f9e2706de ci: add default allowed locales 2022-03-30 14:34:26 +02:00
David Barroso
925fa51886 chore: update go version to 1.18 2022-03-23 12:15:33 +00:00
dependabot[bot]
9db23f87d7 chore: bump actions/cache from 2 to 3 (#46) 2022-03-22 10:01:01 +00:00
Pierre-Louis Mercereau
16df3e84b6 chore: release v0.4.3 2022-03-18 16:46:02 +01:00
Johan Eliasson
8bbc6a3c08 allow to sign up with provider without email 2022-03-18 16:42:53 +01:00
Johan Eliasson
06162b6571 special apple strategy 2022-03-18 15:30:46 +01:00
Johan Eliasson
b7acdbc0fa check correct 2022-03-18 10:35:59 +01:00
Johan Eliasson
485dc1df55 key string 2022-03-18 10:35:12 +01:00
Pierre-Louis Mercereau
666b411b6f docs: update developers instructions with pnpm 2022-03-17 18:56:56 +01:00
Johan Eliasson
e2d34e0ecd wip 2022-03-17 18:52:23 +01:00
Johan Eliasson
ebb19f8cea fix: root field typo (#117) 2022-03-17 09:08:10 +01:00
David Barroso
38fe19b482 fix: change resize behavior to be inline with previous storage (#45)
* change resize behavior to be inline with previous storage

* asd
2022-03-16 15:13:23 +01:00
Johan Eliasson
9a140056e8 chore: release v0.4.2 2022-03-15 16:54:49 +01:00
Johan Eliasson
aab9637586 fix: check if photo item exists (#115) 2022-03-15 16:54:29 +01:00
Johan Eliasson
94511cecfc chore: release v0.4.1 2022-03-15 14:47:04 +01:00
Johan Eliasson
0024aa16f7 fix: 0.4.0 bugs (#114)
* fix: correct redirect url generation

* fix: run postinstall script
2022-03-15 14:29:21 +01:00
David Barroso
03cabdbe86 fix: minor compatibility adjustments (#42) 2022-03-15 14:17:13 +01:00
Johan Eliasson
02e75cfd93 fix: correct redirect url generation 2022-03-15 13:46:16 +01:00
David Barroso
d3fab91585 fixed cors (#43) 2022-03-15 13:44:32 +01:00
David Barroso
3ccd04f102 added cacerts to docker image (#44) 2022-03-15 13:15:04 +01:00
Pierre-Louis Mercereau
06ec31fbac chore: release v0.4.0 2022-03-14 21:46:08 +01:00
Pierre-Louis Mercereau
09af005345 chore: bump releast-it changelog plugin version 2022-03-14 21:45:48 +01:00
Helio
fcd3e10468 test: make env variables available in tests 2022-03-14 20:10:40 +01:00
Johan Eliasson
0dcb37028e feat: error redirects (#109)
* feat: error redirects

* fixed tests

* pascal case for errors
2022-03-14 17:53:30 +01:00
Johan Eliasson
068f9c0d65 fix: provider requests signup data and redirectTo (#108)
* fix: provider requests signup data and redirectTo

* rename column from metadata to options
2022-03-14 17:15:56 +01:00
dependabot[bot]
cd4fcb1aa0 chore: bump nixbuild/nix-quick-install-action from 10 to 12 (#37)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 10 to 12.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v10...v12)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-10 07:45:40 +01:00
Pierre-Louis Mercereau
b573c9cc4b chore: enable pnpm post-install script
This commit is rather meant to share what I just learnt - and to make things a bit cleaner
2022-03-10 06:42:00 +01:00
Pierre-Louis Mercereau
dbfc0bef86 chore: release v0.3.2 2022-03-09 22:26:40 +01:00
Pierre-Louis Mercereau
1cd992602b fix: patch twitch Oauth provider 2022-03-09 22:25:02 +01:00
Johan Eliasson
1b3ed7cdfb fox: npm patch for docker (#106)
* include patches in Dockerifle

* patching npm package for docker
2022-03-09 21:54:07 +01:00
Johan Eliasson
815bd9a3e0 include patches in Dockerifle 2022-03-09 20:45:36 +01:00
David Barroso
06183bcab5 feat: added backwards compatibility with former storage (#32) 2022-03-07 12:14:53 +01:00
Pierre-Louis Mercereau
2a4669286e chore: release v0.3.1 2022-03-04 19:22:56 +01:00
Pierre-Louis Mercereau
7b10e1e57d ci: use pnpm instead of yarn
docker takes locally 50% less time to build, we could expect the same result in our Github actions
2022-03-04 18:53:11 +01:00
Pierre-Louis Mercereau
ab23184e7c fix: use process.env.npm_package_version instead of import 'package.json'
it ended up in not using `src` as the root dir, hence the entrypoint was not dist/start.js but
dist/src/start.js
2022-03-04 18:13:41 +01:00
dependabot[bot]
8579baed75 chore: bump nixbuild/nix-quick-install-action from 9 to 10 (#29)
Bumps [nixbuild/nix-quick-install-action](https://github.com/nixbuild/nix-quick-install-action) from 9 to 10.
- [Release notes](https://github.com/nixbuild/nix-quick-install-action/releases)
- [Changelog](https://github.com/nixbuild/nix-quick-install-action/blob/master/RELEASE)
- [Commits](https://github.com/nixbuild/nix-quick-install-action/compare/v9...v10)

---
updated-dependencies:
- dependency-name: nixbuild/nix-quick-install-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-04 12:22:46 +01:00
dependabot[bot]
56615c1341 chore: bump actions/checkout from 2 to 3 (#30)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-04 10:26:24 +01:00
David Barroso
eeba558231 update dependencies (#31) 2022-03-04 10:26:11 +01:00
David Barroso
d08699f283 chore: added dependabot, release drafter, and PR template (#27) 2022-03-04 10:19:28 +01:00
David Barroso
86a41734d9 Create codeql-analysis.yml (#28) 2022-03-04 10:08:03 +01:00
Pierre-Louis Mercereau
c09b857f5c ci: add missing types 2022-03-02 15:59:00 +01:00
Pierre-Louis Mercereau
f6c29b0e38 docs: update changelog 2022-03-02 15:17:40 +01:00
Pierre-Louis Mercereau
00665eb92a chore: release v0.3.0 2022-03-02 15:12:38 +01:00
Pierre-Louis Mercereau
f5fe85b401 docs: typo 2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
1298c97579 chore: remove comment 2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
aef86ca2d7 chore: typo 2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
b6add5891f docs: correct swagger doc 2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
249461bbce docs: add docker-compose instructions 2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
e0d5658734 docs: complete openapi documentation
not perfect, but all the endpoints are now documented
2022-03-02 15:10:11 +01:00
Pierre-Louis Mercereau
6b92546928 feat: add openapi/swagger endpoint 2022-03-02 15:10:11 +01:00
Johan Eliasson
c4ff6d8f2e fix file name 2022-03-02 14:46:16 +01:00
Johan Eliasson
f022cb5a73 wrong dir 2022-03-02 14:25:17 +01:00
Johan Eliasson
9208abf73d fixing value typos 2022-03-02 14:25:17 +01:00
Johan Eliasson
c917188d96 added twitch as provider 2022-03-02 14:25:17 +01:00
Johan Eliasson
b5dac663d0 updated example envs 2022-03-02 14:25:17 +01:00
Pierre-Louis Mercereau
5a367d7cfb chore: release v0.2.1 2022-02-18 14:06:53 +01:00
Pierre-Louis Mercereau
6a8f1f268e refactor: bump hasura version in docker-compose 2022-02-18 14:05:52 +01:00
Pierre-Louis Mercereau
445ecb4879 refactor: rename migration file name 2022-02-18 12:57:56 +01:00
Pierre-Louis Mercereau
26fb2ffdef fix: reload metadata after applying metadata changes 2022-02-18 12:57:03 +01:00
Nuno Pato
195cee0572 replace "create or replace" with "drop/create" for triggers (#26) 2022-02-15 11:00:38 -01:00
Nuno Pato
787fa0a069 Chore: consistent naming (#24)
* Make naming more consistent

* update hasura to v2.2.0

* Fix typo

* use /v1 instead of /v1/graphql

* asd

* asd

* asd

* Add /graphql

* small fix
2022-02-14 17:38:11 -01:00
Pilou
b257b692ad Update docker-compose-example.yaml 2022-02-07 14:36:31 +01:00
David Barroso
678dd96238 added nix wrapper in case nix isn't available (#23) 2022-02-04 17:37:17 +01:00
David Barroso
3c1d3528db Create LICENSE 2022-02-04 16:02:33 +01:00
David Barroso
8327869801 set up OPTIONS for CORS (#22) 2022-02-04 15:03:49 +01:00
David Barroso
37245a0d5d update dependencies (#21) 2022-02-04 14:05:09 +01:00
David Barroso
a7e10b5b9a added endpoint to get presigned URLs (#20) 2022-02-04 13:04:51 +01:00
David Barroso
c0a37bf1ce change prefix for endpoints to match current pattern (#18) 2022-02-03 20:20:54 +01:00
David Barroso
da427a37c9 fix release (#17) 2022-02-03 17:10:06 +01:00
Pierre-Louis Mercereau
35623d7d11 docs: update changelog 2022-02-03 15:55:20 +01:00
Pierre-Louis Mercereau
c75dfeaaf1 chore: release v0.2.0 2022-02-03 15:07:17 +01:00
Pierre-Louis Mercereau
c00bff8283 fix: allow redirect urls in Oauth that starts with the one defined in the server
apply isValidRedirectTo in Oauth as well, and simplify its signature
2022-02-03 10:15:48 +01:00
Pierre-Louis Mercereau
3c95d18cbd ci: revert to previous build/push config 2022-02-03 09:51:19 +01:00
Pierre-Louis Mercereau
3a5b11ca0c ci: build and tag three times in order to please ECR 2022-02-03 09:29:06 +01:00
Siarhei Lipchyk
cbece99fd2 Fix ecr repo name
The full name for hasura-auth in our ECR is the following:

*****************.dkr.ecr.eu-central-1.amazonaws.com/hasura-auth
2022-02-03 08:35:30 +01:00
David Barroso
7e2c14f147 migrate cli to cobra (#16) 2022-02-02 14:24:47 +01:00
Pierre-Louis Mercereau
12a9800ad5 ci: push docker images to production ECR 2022-02-01 22:42:05 +01:00
Pierre-Louis Mercereau
d6f887a4d9 ci: add permissions to job 2022-02-01 20:18:31 +01:00
David Barroso
e565498a6d implement image manipulation features (#15) 2022-02-01 19:50:01 +01:00
Pierre-Louis Mercereau
8e9b9736fd ci: push docker images to ecr 2022-02-01 19:39:54 +01:00
Pierre-Louis Mercereau
27b3888302 docs: add a docker-compose example 2022-02-01 10:37:35 +01:00
Pierre-Louis Mercereau
b94cdf2097 feat: simplify email templates context
Email templates can now use the `${link}` context value that represents the url the email points to
e.g. email confirmation url

close #64
2022-02-01 10:03:56 +01:00
Pierre-Louis Mercereau
5c6dbf503f fix: remove email-templates endpoint
hasura-auth is supposed to run on a stateless container, so email templates written into the local
server filesystem would not be persisted

BREAKING CHANGE: deactivate the `/email-templates` endpoint

fix #75
2022-01-31 18:35:22 +01:00
Pierre-Louis Mercereau
2458651a41 feat: implement remote email templates with AUTH_EMAIL_TEMPLATE_FETCH_URL 2022-01-31 18:35:22 +01:00
David Barroso
603f6dae48 migrate build and development environment to nix (#14)
* added vendor folder
* make tests more resillient
* migrate to nix
2022-01-27 16:50:12 +01:00
Pierre-Louis Mercereau
bca5b63af9 Merge branch 'fix-allower-roles-env-name' into main 2022-01-27 10:32:12 +01:00
Pierre-Louis Mercereau
5504c6c2ba Merge branch 'fix-allower-roles-env-name' of https://github.com/nhost/hasura-auth into fix-allower-roles-env-name 2022-01-27 10:21:44 +01:00
Pierre-Louis Mercereau
16c50d01b7 refactor: remove references to the ALLOWED_USER_ROLES unused environment variable 2022-01-27 10:21:35 +01:00
Pierre-Louis Mercereau
db25b319b1 ci: don't build/publish docker image when on a pull request 2022-01-27 10:14:57 +01:00
Pilou
70d656671b Merge branch 'main' into fix-allower-roles-env-name 2022-01-27 10:00:07 +01:00
Pierre-Louis Mercereau
e710986232 refactor: rename custom user field to metadata 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
6c8f81fb1b docs: improve lisibility of the main graphql/jsonata mechanism 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
0e859057e6 refactor: ignore invalid custom JWT configuration, but raise a server warning 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
ba9d829e34 test: parsable custom jwt config, but not an object 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
b6390fc5e2 refactor: warn when AUTH_JWT_CUSTOM_CLAIMS cannot be parsed 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
671adb560d refactor: remove useless line 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
53a286a74f feat: use array custom JWT claims
use jsonata to evaluate data of the generated query of custom claims
2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
353010308a test: avoid open handle 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
a5b5cf474d refactor: remove console.log 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
8761d442c5 refactor: move the env check to the right place so there is no circular race between ENV and logger 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
01c0207fd1 feat: custom claims
Introduces a `AUTH_JWT_CUSTOM_CLAIMS`. Attaches custom `x-hasura-` JWT claims in querying data
related to the current user e.g. user.organisation.id. `AUTH_USER_SESSION_VARIABLE_FIELDS` is an
equivalent and is deprecated.

closes #49
2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
a8550d7798 refactor: code cleanup 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
ee43fe374f feat: custom json object user property
option on registration to add a 'custom' JSON object property to the auth.users table

closes #31
2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
b997dc880f refactor: extend metadata operations 2022-01-27 09:27:30 +01:00
Pierre-Louis Mercereau
e99535cacc refactor: remove references to the ALLOWED_USER_ROLES unused environment variable 2022-01-26 14:14:46 +01:00
Pierre-Louis Mercereau
a595941332 fix(metadata): show column values when the column name is the same as the graphql field name
Workaround of a bug in Hasura: https://github.com/hasura/graphql-engine/issues/8020

fix #76
2022-01-24 09:55:46 +01:00
Pierre-Louis Mercereau
aef2cb8630 refactor: revert optional locale on endpoints when the user already exists
so we always use the user locale instead (unless set to NULL in the DB -> default server locale)
2022-01-24 09:15:05 +01:00
Pierre-Louis Mercereau
3ec9c763f1 fix(passwordless): don't send passwordless email when the user is disabled 2022-01-24 09:15:05 +01:00
Pierre-Louis Mercereau
6a70c103df fix(email-templates): fallback to the default template when the requested template doesn't exist 2022-01-24 09:15:05 +01:00
Pierre-Louis Mercereau
31d4a89d58 fix(email-templates): use the locale given as an option, then the existing user locale, then default 2022-01-24 09:15:05 +01:00
Pierre-Louis Mercereau
294073d76a chore: use official postgres image
close #66
2022-01-24 08:30:20 +01:00
David Barroso
5771d2252c added golang client and implemented integration tests (#11) 2022-01-21 19:21:03 +01:00
David Barroso
ef3d382f2b manage migrations for postgres/hasura on startup (#9) 2022-01-21 17:08:17 +01:00
David Barroso
f46599d675 added several RPCs to perform various operations (#3) 2022-01-21 15:25:42 +01:00
Pilou
aaef1971a3 ci: increase yarn network timeout
See
https://github.com/docker/build-push-action/issues/471
https://github.com/nodejs/docker-node/issues/1335
2022-01-20 12:31:08 +01:00
Pierre-Louis Mercereau
ba324c005e ci: increase timeout limit 2022-01-20 12:14:18 +01:00
Pilou
52a3da805e ci: enable multi-platform build 2022-01-20 11:51:22 +01:00
Pierre-Louis Mercereau
f41fae00e2 docs: update the guide for developers 2022-01-19 12:45:28 +01:00
Pierre-Louis Mercereau
bb7c9d1bbc docs: correct developers' guide link 2022-01-19 08:39:44 +01:00
Pierre-Louis Mercereau
8da32a54a4 docs: correct dev guide link 2022-01-19 08:30:34 +01:00
Pierre-Louis Mercereau
e991f00bd2 chore: release v0.1.0 2022-01-18 22:17:45 +01:00
Pierre-Louis Mercereau
9a425b18e8 ci: trigger release worflow only on release publication 2022-01-18 22:15:46 +01:00
Pierre-Louis Mercereau
80349c2812 chore: release v0.1.0 2022-01-18 22:02:50 +01:00
Pierre-Louis Mercereau
3317ff213b ci: fallback to publishing locally 2022-01-18 22:01:50 +01:00
nhost
540bb36bbc chore: release v0.0.3 2022-01-18 20:53:52 +00:00
Pierre-Louis Mercereau
94efc5494e Merge branch 'main' of https://github.com/nhost/hasura-auth into main 2022-01-18 21:50:25 +01:00
Pierre-Louis Mercereau
b081be9d39 Merge branch 'main' of https://github.com/nhost/hasura-auth into main 2022-01-18 21:50:18 +01:00
Pierre-Louis Mercereau
c48ad52150 Merge branch 'main' of https://github.com/nhost/hasura-auth into main 2022-01-18 21:49:51 +01:00
Pierre-Louis Mercereau
29cc800ca0 ci: try to trigger publish 2022-01-18 21:49:22 +01:00
nhost
80c1794f5f chore: release v0.0.3 2022-01-18 20:44:02 +00:00
Pierre-Louis Mercereau
94850207be ci: release first, then publish on a separate workflow when GH release is effectively published 2022-01-18 21:40:58 +01:00
nhost
8b85a158a7 chore: release v0.0.3 2022-01-18 20:08:50 +00:00
Pierre-Louis Mercereau
eadfafb3ef ci: correct dependency between workflows 2022-01-18 21:05:33 +01:00
Pierre-Louis Mercereau
d9eff08121 chore: revert to latest known tag 2022-01-18 21:02:49 +01:00
Pierre-Louis Mercereau
e2dab11743 ci: tag to latest when push on main, and cleanup 2022-01-18 20:32:52 +01:00
Pierre-Louis Mercereau
56211c4d39 ci: typo 2022-01-18 19:13:23 +01:00
Pierre-Louis Mercereau
78a7e60f98 ci: try input 2022-01-18 19:11:44 +01:00
Pierre-Louis Mercereau
68108258fd ci: add release input 2022-01-18 19:04:47 +01:00
Pierre-Louis Mercereau
5f4d2b2415 perf: reduce docker image from 477MB to 176MB 2022-01-18 16:58:49 +01:00
Pierre-Louis Mercereau
7bb4763b8c ci: deactivate release hook on build 2022-01-18 16:57:44 +01:00
Pierre-Louis Mercereau
ebe00fa824 ci: correct workflow dependency 2022-01-18 16:36:00 +01:00
Pierre-Louis Mercereau
48b85ecf08 ci: activate all the workflows and reuse them in old build workflow 2022-01-18 16:34:50 +01:00
Pierre-Louis Mercereau
6e53c1235a ci: pass secrets between workflows 2022-01-18 16:24:47 +01:00
Pierre-Louis Mercereau
963099c099 ci: install depdenencies and use correct cache 2022-01-18 16:09:40 +01:00
Pierre-Louis Mercereau
841775ea4c ci: add checkout step 2022-01-18 16:01:01 +01:00
Pierre-Louis Mercereau
f149cd3a4f ci: correct link between workflows 2022-01-18 15:56:35 +01:00
Pierre-Louis Mercereau
1c5bbb0dd0 ci: correct action version 2022-01-18 15:51:23 +01:00
Pierre-Louis Mercereau
4eb09abd01 ci: correct docker secrets 2022-01-18 15:48:53 +01:00
Pierre-Louis Mercereau
4e121d2d4b ci: remove incorrect dependency 2022-01-18 15:46:55 +01:00
Pierre-Louis Mercereau
e1a52bdb1c ci: enable workflow dispatch 2022-01-18 15:45:14 +01:00
Pierre-Louis Mercereau
761677a604 ci: improve GH actions 2022-01-18 15:43:50 +01:00
Pierre-Louis Mercereau
76ae0f5a12 ci: use cache 2022-01-18 15:17:47 +01:00
nhost
8f9bb8e96d chore: release v1.1.0 2022-01-18 14:13:47 +00:00
Pierre-Louis Mercereau
1777c106bd ci: change gh action name 2022-01-18 15:11:48 +01:00
Pierre-Louis Mercereau
71e2bb3abe build: don't use github autogenerated changelog 2022-01-18 15:10:49 +01:00
Pierre-Louis Mercereau
67265de4f2 build: remove dry-run 2022-01-18 15:10:49 +01:00
Pierre-Louis Mercereau
78bc4c85e1 build: manual github action 2022-01-18 15:10:49 +01:00
Pierre-Louis Mercereau
634d4b2d28 build: initial commit/version/release tools 2022-01-18 15:10:49 +01:00
Helio Alves
f16be31f98 Add options to reset password (#51)
* fix(user): add options to userPasswordResetSchema

endpoint `/user/password/reset` accepts `options` object, however, `userPasswordResetSchema` wasn't accepting it and throwing an error

* test(user): pass options to test 'should change password with ticket'

* test(password): add test for passing redirectTo to change password with ticket

* test: correct password-related tests

Co-authored-by: Johan Eliasson <johan@nhost.io>
Co-authored-by: Pilou <24897252+plmercereau@users.noreply.github.com>
2022-01-18 12:59:00 +01:00
Helio Alves
109695f0da feat(emails): translate email templates to french (#63)
* feat(emails): translate email templates to french

* fix(typo): fix typo

* fix(translations): change translation
2022-01-18 12:24:12 +01:00
Helio Alves
c7eb721f11 fix(user): fix user schemas (#52)
* test(email): remove redundant await

* fix(schemas): fix typo in options object

* test(email): add change email with redirect test

* test(email): add tests for email verification

* fix(test): remove duplicate code

Co-authored-by: Pilou <24897252+plmercereau@users.noreply.github.com>
2022-01-18 12:23:04 +01:00
Pilou
aaa413beb2 clean code and streamline dev/test/build pipelines (#67)
- streamline tsconfig and path alias
- bump dependencies
- remove unused code e.g. prod-paths, inexistent path aliases
- remove unused dependencies e.g. esbuild, markdown-it
- develop locally rather than in a docker wrapper
- simplify package.json scripts
- use .env variables when possible e.g. cogegen, apollo
- add a basic developer's guide
2022-01-18 11:38:00 +01:00
David Barroso
0302644cf8 allow specifying a root folder for s3 storage (#7) 2022-01-17 10:33:49 +01:00
Johan Eliasson
0b764255e0 fix: better error message for redirectTo (#59) 2022-01-17 07:17:00 +01:00
Bazyli Brzóska
3cafdf9e20 Correct typos (#61)
* correct typo

* correct typo
2022-01-17 07:16:23 +01:00
David Barroso
9acf2b1f89 Implemented DELETE /file/:id (#2) 2022-01-13 18:47:23 +01:00
David Barroso
4a9ad0f082 implemented PUT /files/:id (#1) 2022-01-13 13:24:57 +01:00
David Barroso
c61ea9bef6 first poc 2022-01-04 10:53:06 +01:00
Johan Eliasson
394d4ae5e2 fix: keep .env for dev in repo and updated hasura version to m1 supported image (#60) 2021-12-23 09:30:51 +01:00
Johan Eliasson
994af31935 fix(password): validate password on change (#58)
* Validate password on change

* fix: removed unused code
2021-12-21 11:29:04 +01:00
David Barroso
fcc44652f2 added README.md 2021-12-13 13:17:58 +01:00
Johan Eliasson
c328aa71ef old password is not required for signed in users to change password (#47) 2021-12-08 09:27:56 +01:00
Nuno Pato
b4a74567bb Increase signup's ticket expires at to 30 days (#45)
* Increase signup's ticket expires at to 30 days

* Also change it in send verification email
2021-11-30 13:37:33 +01:00
Johan Eliasson
c34e55eb63 typo 2021-10-30 17:20:32 +02:00
Nuno Pato
0a1fca4126 Add scope to Facebook provider (#40) 2021-10-29 08:30:30 +02:00
Johan Eliasson
b0d04e8bf8 Hirarchical structure for env vars (#39)
* removed EMAILS_ENABLED env var. SMTP settings should always be available

* renamed TWILIO env var with SMS prefix

* updated password related env vars

* updated env vars related to user role(s)

* passwordless env vars updated

* more env var updates

* test fix and updates

* provider env vars updated
2021-10-21 20:00:25 +02:00
Johan Eliasson
cd333849f0 readme update 2021-10-20 12:15:05 +02:00
Johan Eliasson
c33924e61e added default role 2021-10-20 11:25:15 +02:00
Johan Eliasson
86f942edee removed unused env var 2021-10-20 11:21:25 +02:00
Johan Eliasson
104da12e4a Passwordless routes (#38)
* started

* test fix

* redirectTo option for emails

* bug fix

* console log

* more console log

* added env var for CI

* removed console logs

* removed console logs

* sms signin working
2021-10-16 17:44:50 +02:00
Johan Eliasson
cc30a60f7d Email cleanup (#37)
* email updates

* updated tests

* lint fix

* remove logs

* build fix
2021-10-15 15:38:15 +02:00
Johan Eliasson
932baf8b1c removed profiles + cleanup 2021-10-15 13:51:44 +02:00
Johan Eliasson
c3d4167e52 moved some fields to options object 2021-10-15 13:47:37 +02:00
Johan Eliasson
780641bf84 using options instead for sign up and sign in routes (#34)
* using options instead for sign up and sign in routes

* test update

* correct options for signup
2021-10-15 12:56:33 +02:00
Johan Eliasson
68dea05653 Misc updates (#32)
* removed support for last sent for now, can be introduced later with more tests etc

* added verify route
2021-10-14 11:33:07 +02:00
Johan Eliasson
632f6c38ee Allow and block lists (#29)
* Always apply metadata

* Added new env vars

* allow and block implemented and tests for signup

* test cleanup

* access control on signin

* optional res to email validation

* correct error handling for valid email for provider
2021-10-14 11:28:02 +02:00
Johan Eliasson
252f50300a Remove profile support (#30)
* remove profile support

* removed all profile references

* removed unused code
2021-10-05 15:12:35 +02:00
Johan Eliasson
d6838305ec Always apply metadata (#28) 2021-09-28 10:06:47 +02:00
Johan Eliasson
f51bb26490 fix: Update README.md (#27) 2021-09-28 09:30:50 +02:00
elitan
6ebfe2b134 cleanup + update provider tokens on signin 2021-09-22 11:42:29 +02:00
elitan
c3de66dedd comment update 2021-09-18 11:20:14 +02:00
elitan
6197878b80 added last seen column for users 2021-09-18 11:19:33 +02:00
elitan
c916151b71 test fixes 2021-09-18 05:55:39 +02:00
Johan Eliasson
d62afdea8b Merge pull request #20 from nhost/add-extensions-to-public
Add extensions to the public schema
2021-09-16 21:10:22 +02:00
Johan Eliasson
9397db8087 Merge branch 'main' into add-extensions-to-public 2021-09-16 21:10:15 +02:00
Johan Eliasson
85b9fd8bbd Merge pull request #21 from nhost/fix-var-name
Use correct ENV var
2021-09-16 21:08:53 +02:00
elitan
4b31f30806 lower case 2021-09-15 14:15:46 +02:00
Nuno Pato
6c2f0f570d Remove references to REGISTRATION_CUSTOM_FIELDS 2021-09-07 00:14:59 +00:00
Nuno Pato
1a2cfa71ba Remove references to REDIRECT_URL_ERROR 2021-09-07 00:06:55 +00:00
Nuno Pato
4863c05b4a Remove references to REDIRECT_URL_SUCCESS 2021-09-07 00:06:18 +00:00
Nuno Pato
3bb3ee2100 Remove references to VERIFY_EMAILS 2021-09-06 23:47:50 +00:00
Nuno Pato
1d10ac8192 Remove references to AUTO_ACTIVATE_NEW_USERS 2021-09-06 23:46:11 +00:00
Nuno Pato
6b91d04589 Remove references to JWT_ALGORITHM 2021-09-06 18:52:30 +00:00
Nuno Pato
ab41a398ec Use correct ENV var 2021-09-06 18:37:19 +00:00
elitan
a894134062 updated sign in responses for email and password 2021-09-01 07:52:10 +02:00
elitan
786220f2f9 Using new metadata API and tracking all relationships 2021-08-31 21:40:30 +02:00
elitan
386f6f1da0 login with sms 2021-08-28 17:03:14 +02:00
elitan
df71598ab6 allow and block list for email and email domains 2021-08-27 16:00:00 +02:00
elitan
c68cd71f83 package cleanup and env vars started listed in README 2021-08-19 10:46:17 +02:00
elitan
234f47899c docker build updates 2021-08-19 09:12:05 +02:00
elitan
d73153ea76 update 2021-08-18 20:34:25 +02:00
elitan
f2c7b1bf3e update 2021-08-18 20:33:55 +02:00
elitan
979a3d1da1 hasura graphql url 2021-08-18 20:32:37 +02:00
elitan
b481ea9dc6 direct link 2021-08-18 20:14:53 +02:00
elitan
c58b462e33 env vars for gh actions 2021-08-18 20:07:03 +02:00
elitan
a65696c75a Using pino for logging 2021-08-18 19:56:47 +02:00
elitan
0f237d2a8f pino logger 2021-08-18 12:57:42 +02:00
elitan
4027100063 env var names updated and test passes 2021-08-18 10:53:11 +02:00
elitan
f92401a11d using x-hasura-admin-secret as header 2021-08-17 20:06:02 +02:00
elitan
5d8989bec9 single passwordless email template 2021-08-17 09:23:14 +02:00
elitan
56d887ffb1 passwordless with code / link support for email and sms 2021-08-17 08:06:07 +02:00
Nuno Pato
281344771d Add extensions to the public schema 2021-08-16 17:53:14 +00:00
elitan
6e0eed6879 bug fix 2021-08-16 10:34:15 +02:00
elitan
dd027722ee sign in body response updates and more 2021-08-16 08:09:19 +02:00
elitan
9dfa082d12 correct validations 2021-08-11 10:53:58 +02:00
elitan
e3f363558a remove tracking of email_templates table 2021-08-11 09:54:51 +02:00
elitan
e4f89b5d88 don't save email templates in db 2021-08-11 09:51:30 +02:00
elitan
a1a4c14baf removed unused code 2021-08-10 22:51:07 +02:00
elitan
bc09758fd7 example update 2021-08-10 22:19:25 +02:00
elitan
6da3a0d9fc refresh token expires in seconds 2021-08-10 22:16:53 +02:00
elitan
9f66f4d239 provider correct redirect urls 2021-08-10 22:15:00 +02:00
elitan
8371a2c8f4 removed unused imports 2021-08-10 20:05:04 +02:00
elitan
17c6760916 moved all env vars to single file 2021-08-10 19:59:36 +02:00
elitan
26e02fb119 application env var moved 2021-08-10 19:47:05 +02:00
elitan
2477572cff don't require profiles table 2021-08-10 11:40:14 +02:00
elitan
0a1ed11c04 remove ui from dockerfiles 2021-08-10 11:23:59 +02:00
elitan
c75c21aeee updates and remove UI folder 2021-08-10 11:23:23 +02:00
elitan
67d24211c2 using seconds 2021-08-09 15:14:49 +02:00
elitan
c7fb045698 email reset test working 2021-08-06 14:17:52 +02:00
elitan
9388cbab0d set specific migration table 2021-08-06 10:41:38 +02:00
elitan
5dea03825b ui extension fix 2021-08-05 19:57:43 +02:00
elitan
f26189b27c cleanup 2021-08-05 19:30:44 +02:00
elitan
97139b684b user tests 2021-08-05 19:28:49 +02:00
Johan Eliasson
c86cef5f63 Merge pull request #18 from nhost/new-changes
First quick base version new routes
2021-08-05 12:01:07 +02:00
elitan
8907eee2ed send verification email endpoint 2021-08-05 11:51:27 +02:00
elitan
f212784e39 install first 2021-08-05 09:46:07 +02:00
elitan
43ed2b03c3 log cleanup and prod docker ui fix 2021-08-05 09:35:24 +02:00
elitan
5ef5d43cb6 correct if statement 2021-08-05 09:19:57 +02:00
elitan
48cf7aa09f logs 2021-08-05 09:14:11 +02:00
elitan
e0d6e976fe more logs 2021-08-05 09:05:42 +02:00
elitan
997c561275 clear all emails 2021-08-05 08:59:37 +02:00
elitan
517d8044e9 missing await 2021-08-05 08:56:30 +02:00
elitan
554b3d5ce3 fix 2021-08-05 08:39:44 +02:00
elitan
5439ff81c9 logs 2021-08-05 08:39:03 +02:00
elitan
bfcbf22b7b include function 2021-08-05 08:33:51 +02:00
elitan
8c31a5c6a1 wait for email to arrive? 2021-08-05 08:33:24 +02:00
elitan
66b56b0dce use faker for email/password 2021-08-05 08:19:24 +02:00
elitan
d912177ee8 more tests 2021-08-05 07:59:15 +02:00
elitan
d43bdc0d8f remove verbose logs 2021-08-05 07:39:38 +02:00
elitan
4ec7c8c7df skip linting for now 2021-08-04 23:14:45 +02:00
elitan
3ef2020a26 test fix 2021-08-04 23:07:06 +02:00
elitan
9415942a53 email verification 2021-08-04 22:49:29 +02:00
elitan
5369e9624f mfa OK 2021-08-04 22:31:49 +02:00
elitan
20b55d5fba src/ui folder removed and ignored 2021-08-04 21:29:44 +02:00
elitan
dfc8d5f51f Next.js UI 2021-08-04 21:28:03 +02:00
elitan
2c0aafac68 apply metadata in dev or on first round in prod 2021-08-04 11:23:35 +02:00
elitan
c2a83a954f removed user active for disabled, added sign in email/phone nr verifyed required env vars 2021-08-04 08:52:49 +02:00
elitan
5d69d31b16 future routes 2021-08-03 10:38:06 +02:00
elitan
4236653586 moved otp to individual routes 2021-08-03 10:35:32 +02:00
elitan
65dd8beb33 README cleanup 2021-08-03 09:49:35 +02:00
elitan
0493990e57 access token custom claims test (user,profile) 2021-08-03 09:25:15 +02:00
elitan
849d842c32 claims with strings only 2021-08-02 21:03:57 +02:00
elitan
abaf40cd04 skip profiles if not exist 2021-08-02 20:41:30 +02:00
elitan
a333c8fc74 correct parameter validation 2021-08-02 10:38:14 +02:00
elitan
7b2fee36b6 correct parameter naming 2021-08-02 10:32:27 +02:00
elitan
8a9a32ce97 header naming 2021-08-02 10:26:40 +02:00
elitan
61ead1199c header naming 2021-08-02 10:22:47 +02:00
elitan
ed986ed7ba otp in magic link email 2021-08-02 10:17:22 +02:00
elitan
1b07f11843 correct handling of otp with magic links 2021-08-02 10:13:05 +02:00
elitan
17d8a3ac4e correct deanonymize 2021-08-02 09:03:05 +02:00
elitan
b7af7d4618 docker publish 2021-08-02 08:51:57 +02:00
elitan
6e3c26d4f7 more updates 2021-08-01 20:40:08 +02:00
elitan
5797f8830b test with coverage with GHA 2021-08-01 13:58:53 +02:00
elitan
57c709ed96 all tests works locally 2021-08-01 13:56:04 +02:00
elitan
811a1054ee removed all env vars from validation 2021-08-01 12:32:00 +02:00
elitan
dadeb672c6 don't use env vars in joi validation 2021-08-01 11:39:52 +02:00
elitan
81ff2d1aaf individual server per test 2021-08-01 11:31:35 +02:00
elitan
c1a94dd21f test test 2021-08-01 11:22:37 +02:00
elitan
408ab151fd added verbose logging 2021-08-01 11:07:29 +02:00
elitan
a3c897aada remove unused minio container 2021-08-01 10:54:08 +02:00
elitan
b8213f2fdd removed logs 2021-08-01 10:52:23 +02:00
elitan
228f39da1d adding tests 2021-08-01 10:47:16 +02:00
elitan
d8e260eaa7 removed docs + modified build workflow 2021-07-30 08:13:34 +02:00
elitan
9329cd4ec3 cleanup and prettier 2021-07-30 07:53:58 +02:00
elitan
36726fef52 rotating oauth tokens working 2021-07-29 12:43:06 +02:00
elitan
76fa4ad6e3 providers working 2021-07-29 10:33:01 +02:00
elitan
7183c3f240 deanonymize working with magic link 2021-07-28 16:50:32 +02:00
elitan
3c90b55958 deanonymize working 2021-07-28 16:42:49 +02:00
elitan
ee340f8683 sign in as anonymous working 2021-07-28 14:55:18 +02:00
elitan
0250773fbc user locale updaet 2021-07-28 14:40:48 +02:00
elitan
3390f45cea email reset working 2021-07-28 14:28:42 +02:00
elitan
d823235084 password reset working 2021-07-28 10:35:03 +02:00
elitan
8456bb0eaa change password with old password working 2021-07-28 09:55:29 +02:00
elitan
4de6e2d3ac no need to get userId here 2021-07-28 09:31:46 +02:00
elitan
97c437760a get user (and profile) 2021-07-28 09:30:20 +02:00
elitan
be2212c8dd sign out working 2021-07-28 09:22:17 +02:00
elitan
bc8d790eb9 refresh token working 2021-07-28 09:14:00 +02:00
elitan
cebd3399a6 activated mfa signin route 2021-07-28 08:57:42 +02:00
elitan
a4dbc79a1a MFA working 2021-07-28 08:54:28 +02:00
elitan
b27646357d cleanup 2021-07-27 11:46:07 +02:00
elitan
0d8c7d9e55 signin updates 2021-07-27 11:45:12 +02:00
elitan
1aca6b4f5b sign up email password completed 2021-07-26 09:11:31 +02:00
elitan
129248847b new init changes 2021-07-23 16:23:34 +02:00
komninoschat
da8c954ffd fix: everything 2021-07-10 01:10:06 +00:00
Johan Eliasson
0aa0a6d1e7 Merge pull request #12 from nhost/remove-public-users-table
Move users table to auth schema + camelCase
2021-07-04 07:43:45 +02:00
elitan
ce4d289438 cleanup 2021-07-04 07:42:38 +02:00
elitan
0c67a703d4 don't copy key 2021-07-03 18:46:49 +02:00
elitan
3952718811 graphql linting 2021-07-03 18:40:46 +02:00
elitan
e9b08db88f auth / refresh token middleware updated 2021-07-03 18:38:31 +02:00
elitan
871858c753 update 2021-07-03 18:33:42 +02:00
elitan
6fc15b80e3 locale update working 2021-07-03 17:29:19 +02:00
elitan
2ea24bd44d more tests working 18 left 2021-07-03 17:09:04 +02:00
elitan
fb671f5860 update, more tests needs fixing 2021-07-03 15:02:59 +02:00
elitan
dd9c32d526 linting 2021-07-03 08:17:21 +02:00
elitan
d650a7bcca don't throw if not found 2021-07-03 08:17:16 +02:00
elitan
a03412fe87 docker compose updates 2021-07-03 08:16:58 +02:00
elitan
1276ec26ba use public schema for citext extension 2021-07-03 08:16:34 +02:00
elitan
f7b235c24f don't build dev (mount instead) 2021-07-03 08:16:10 +02:00
elitan
fdf4ad31ee format on save 2021-07-03 08:15:53 +02:00
elitan
dd00098668 missing display name 2021-07-03 07:21:40 +02:00
elitan
348cc06164 do ticket db update before sending email + linting updates 2021-07-03 07:19:35 +02:00
elitan
790c9ca9cc graphql linting 2021-07-03 07:14:40 +02:00
komninoschat
6da801eb9c feat: finish 2021-07-03 00:01:01 +00:00
komninoschat
6bf6c5770b Merge branch 'remove-public-users-table' of https://github.com/nhost/hasura-auth into refactor-validation 2021-07-02 01:33:45 +00:00
Komninos Chatzipapas
bdd45ead8e Merge pull request #16 from nhost/refactor-validation
Refactor validation, error handling
2021-06-29 09:07:19 +03:00
komninoschat
5958f67305 config: gh actions master -> main 2021-06-29 05:50:49 +00:00
komninoschat
50a19da4f7 refactor: validation, error handling 2021-06-29 05:42:53 +00:00
elitan
d0503ee0f0 more updates 2021-06-28 19:55:51 +02:00
elitan
961e806a28 table interface naming update 2021-06-28 17:35:12 +02:00
elitan
3780233d87 camelCase updates 2021-06-28 17:34:02 +02:00
elitan
8a068def25 gql update 2021-06-28 08:13:50 +02:00
elitan
6742e8da4f added codegens 2021-06-28 08:10:02 +02:00
Komninos Chatzipapas
e1aaecaecc Merge pull request #11 from nhost/rename-to-main
Rename from master to main
2021-06-27 21:50:23 +03:00
elitan
8468cc3e59 try/catch not needed 2021-06-27 19:38:28 +02:00
elitan
fd87888334 tarcking + custom table fields 2021-06-27 19:37:12 +02:00
elitan
34451f7a57 Migrations working 2021-06-27 16:47:34 +02:00
Nuno Pato
6fd920aa49 Rename from master to main 2021-06-25 15:16:43 +02:00
Komninos Chatzipapas
ea088f39ba Merge pull request #7 from nhost/add-logging
Add logging
2021-06-23 12:36:21 +03:00
komninoschat
67916eb0cd fix: add new alias to jest config 2021-06-23 09:26:55 +00:00
komninoschat
8bc01ad8cb feat: logging, test logging, start fix 2021-06-23 09:16:37 +00:00
komninoschat
5c155e86e5 Initial commit 2021-06-21 07:39:56 +00:00
16268 changed files with 3010457 additions and 171108 deletions

View File

@@ -1,9 +0,0 @@
# Changesets
Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool
that works with multi-package repos, or single-package repos to help you version and publish your
code. You can find the full documentation for it
[in our repository](https://github.com/changesets/changesets)
We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

View File

@@ -1,9 +0,0 @@
{
"$schema": "https://unpkg.com/@changesets/config@1.6.0/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch"
}

14
.github/CODEOWNERS vendored
View File

@@ -1,14 +0,0 @@
# Documentation
# https://help.github.com/en/articles/about-code-owners
/packages @nunopato @onehassan
/packages/docgen @nunopato @onehassan
/integrations/stripe-graphql-js @nunopato @onehassan
/.github @nunopato @onehassan
/dashboard/ @nunopato @onehassan
/docs/ @nunopato @onehassan
/config/ @nunopato @onehassan
/examples/ @nunopato @onehassan
/examples/codegen-react-apollo @nunopato @onehassan
/examples/codegen-react-query @nunopato @onehassan
/examples/react-apollo-crm @nunopato @onehassan

View File

@@ -7,6 +7,8 @@ assignees: ''
---
> **Note:** Bug reports that are clearly AI-generated will not be accepted and will be closed immediately. Please write your bug report in your own words.
**Describe the bug**
A clear and concise description of what the bug is.

View File

@@ -7,6 +7,8 @@ assignees: ''
---
> **Note:** Feature requests that are clearly AI-generated will not be accepted and will be closed immediately. Please write your feature request in your own words.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

46
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,46 @@
### Checklist
- [ ] No breaking changes
- [ ] Tests pass
- [ ] New features have new tests
- [ ] Documentation is updated (if applicable)
- [ ] Title of the PR is in the correct format (see below)
--- Delete everything below this line before submitting your PR ---
> **Note on AI-assisted contributions:** Contributions with the help of AI are permitted, but you are ultimately responsible for the quality of your submission and for ensuring it follows our contributing guidelines. **The PR description must be written in your own words and be clear and concise**. Please ensure you remove any superfluous code comments introduced by AI tools before submitting. PRs that clearly violate this rule will be closed without further review.
### PR title format
The PR title must follow the following pattern:
`TYPE(PKG): SUMMARY`
Where `TYPE` is:
- feat: mark this pull request as a feature
- fix: mark this pull request as a bug fix
- chore: mark this pull request as a maintenance item
Where `PKG` is:
- `auth`: For changes to the Nhost Auth service
- `ci`: For general changes to the build and/or CI/CD pipeline
- `cli`: For changes to the Nhost CLI
- `codegen`: For changes to the code generator
- `dashboard`: For changes to the Nhost Dashboard
- `deps`: For changes to dependencies
- `docs`: For changes to the documentation
- `examples`: For changes to the examples
- `internal/lib`: For changes to Nhost's common libraries (internal)
- `mintlify-openapi`: For changes to the Mintlify OpenAPI tool
- `nhost-js`: For changes to the Nhost JavaScript SDK
- `nixops`: For changes to the NixOps
- `storage`: For changes to the Nhost Storage service
Where `SUMMARY` is a short description of what the PR does.
### Tests
- please make sure your changes pass the current tests (Use the `make test`
- if you are introducing a new feature, please write as much tests as possible.

15
.github/actions/cache-nix/action.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: 'Cache Nix to S3'
description: 'Copy Nix store to S3-backed cache'
inputs:
NIX_CACHE_PRIV_KEY:
description: 'Nix cache private key'
required: true
runs:
using: 'composite'
steps:
- name: "Cache build"
shell: bash
run: |
nix store sign --key-file <(echo "${{ inputs.NIX_CACHE_PRIV_KEY }}") --all
nix copy --to 's3://nhost-nix-cache?region=eu-central-1' --substitute-on-destination --all

View File

@@ -0,0 +1,29 @@
name: 'Discord Notification'
description: 'Send a Discord notification with conditional check'
inputs:
webhook-url:
description: 'Discord webhook URL'
required: true
title:
description: 'Embed title'
required: true
description:
description: 'Embed description'
required: true
color:
description: 'Embed color (decimal number)'
required: false
default: '5763719'
runs:
using: 'composite'
steps:
- name: Send Discord notification
if: ${{ inputs.webhook-url }}
uses: tsickert/discord-webhook@v7.0.0
with:
webhook-url: ${{ inputs.webhook-url }}
embed-title: ${{ inputs.title }}
embed-description: ${{ inputs.description }}
embed-color: ${{ inputs.color }}

View File

@@ -1,59 +0,0 @@
name: Install Node and package dependencies
description: 'Install Node dependencies with pnpm'
inputs:
TURBO_TOKEN:
description: 'Turborepo token'
TURBO_TEAM:
description: 'Turborepo team'
BUILD:
description: 'Build packages'
default: 'default'
runs:
using: 'composite'
steps:
- uses: pnpm/action-setup@v4
with:
version: 10.1.0
run_install: false
- name: Get pnpm cache directory
id: pnpm-cache-dir
shell: bash
run: echo "dir=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v4
id: pnpm-cache
with:
path: ${{ steps.pnpm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-node-
- name: Use Node.js v20
uses: actions/setup-node@v3
with:
node-version: 20
- shell: bash
name: Use Latest Corepack
run: |
echo "Before: corepack version => $(corepack --version || echo 'not installed')"
npm install -g corepack@latest
echo "After : corepack version => $(corepack --version)"
corepack enable
pnpm --version
- shell: bash
name: Install packages
run: pnpm install --frozen-lockfile
# * Build all Nhost packages as they are all supposed to be tested.
# * They are reused through the Turborepo cache
- shell: bash
name: Build packages
if: ${{ inputs.BUILD == 'all' }}
run: pnpm run build:all
env:
TURBO_TOKEN: ${{ inputs.TURBO_TOKEN }}
TURBO_TEAM: ${{ inputs.TURBO_TEAM }}
- shell: bash
name: Build everything in the monorepo
if: ${{ inputs.BUILD == 'default' }}
run: pnpm run build
env:
TURBO_TOKEN: ${{ inputs.TURBO_TOKEN }}
TURBO_TEAM: ${{ inputs.TURBO_TEAM }}

View File

@@ -1,108 +0,0 @@
# Nhost CLI GitHub Action
## Usage
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI
uses: ./.github/actions/nhost-cli
```
### Install the CLI and start the app
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nhost CLI and start the application
uses: ./.github/actions/nhost-cli
with:
start: true
```
### Set another working directory
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nhost CLI
uses: ./.github/actions/nhost-cli
with:
path: examples/react-apollo
start: true
```
### Don't wait for the app to be ready
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nhost CLI and start app
uses: ./.github/actions/nhost-cli
with:
start: true
wait: false
```
### Stop the app
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Start app
uses: ./.github/actions/nhost-cli
with:
start: true
- name: Do something
cmd: echo "do something"
- name: Stop
uses: ./.github/actions/nhost-cli
with:
stop: true
```
### Install a given value of the CLI
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nhost CLI
uses: ./.github/actions/nhost-cli
with:
version: v0.8.10
```
### Inject values into nhost/config.yaml
```yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Nhost CLI
uses: ./.github/actions/nhost-cli
with:
config: |
services:
auth:
image: nhost/hasura-auth:0.16.1
```

View File

@@ -1,66 +0,0 @@
name: Nhost CLI
description: 'Action to install the Nhost CLI and to run an application'
inputs:
start:
description: "Start the application. If false, the application won't be started"
default: 'false'
wait:
description: 'If starting the application, wait until it is ready'
default: 'true'
stop:
description: 'Stop the application'
default: 'false'
path:
description: 'Path to the application'
default: '.'
version:
description: 'Version of the Nhost CLI'
default: 'latest'
config:
description: 'Values to be injected into nhost/config.yaml'
runs:
using: 'composite'
steps:
- name: Check if Nhost CLI is already installed
id: check-nhost-cli
shell: bash
# TODO check if the version is the same
run: |
if [ -z "$(which nhost)" ]
then
echo "installed=false" >> $GITHUB_OUTPUT
else
echo "installed=true" >> $GITHUB_OUTPUT
fi
- name: Install Nhost CLI
if: ${{ steps.check-nhost-cli.outputs.installed == 'false' }}
uses: nick-fields/retry@v2
with:
timeout_minutes: 3
max_attempts: 10
command: bash <(curl --silent -L https://raw.githubusercontent.com/nhost/cli/main/get.sh) ${{ inputs.version }}
- name: Set custom configuration
if: ${{ inputs.config }}
shell: bash
working-directory: ${{ inputs.path }}
run: config="${{ inputs.config }}" yq -i '. *= env(config)' nhost/config.yaml
- name: Start the application
if: ${{ inputs.start == 'true' }}
shell: bash
working-directory: ${{ inputs.path }}
run: |
cp .secrets.example .secrets
nhost up
- name: Log on failure
if: steps.wait.outcome == 'failure'
shell: bash
working-directory: ${{ inputs.path }}
run: |
nhost logs
exit 1
- name: Stop the application
if: ${{ inputs.stop == 'true' }}
shell: bash
working-directory: ${{ inputs.path }}
run: nhost down

51
.github/actions/setup-nix/action.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: 'Setup Nix'
description: 'Install Nix and setup caching for Nhost projects'
inputs:
NAME:
description: 'Project name for cache key'
required: true
NIX_CACHE_PUB_KEY:
description: 'Nix cache public key'
required: true
GITHUB_TOKEN:
description: 'GitHub token for Nix access'
required: true
runs:
using: 'composite'
steps:
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
install_url: "https://releases.nixos.org/nix/nix-2.28.4/install"
install_options: "--no-daemon"
extra_nix_config: |
experimental-features = nix-command flakes
sandbox = false
access-tokens = github.com=${{ inputs.GITHUB_TOKEN }}
substituters = https://cache.nixos.org/?priority=40 s3://nhost-nix-cache?region=eu-central-1&priority=50
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ${{ inputs.NIX_CACHE_PUB_KEY }}
keep-env-derivations = true
keep-outputs = true
- name: Restore and save Nix store
uses: nix-community/cache-nix-action@v6
with:
primary-key: nix-${{ inputs.NAME }}-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ inputs.NAME }}-${{ runner.os }}-${{ runner.arch }}}-
gc-max-store-size-linux: 2G
purge: true
purge-prefixes: nix-${{ inputs.NAME }}-
purge-created: 0
purge-last-accessed: 0
purge-primary-key: never
# - name: "Verify if nixops is pre-built"
# id: verify-nixops-build
# run: |
# export drvPath=$(make build-nixops-dry-run)
# echo "Derivation path: $drvPath"
# nix path-info --store s3://nhost-nix-cache\?region=eu-central-1 $drvPath \
# || (echo "Wait until nixops is already built and cached and run again" && exit 1)
# if: ${{ inputs.NAME != 'nixops' }}

View File

@@ -0,0 +1,41 @@
---
name: "Validate PR Title"
description: "Validates that PR title follows the required format: TYPE(PKG): SUMMARY"
inputs:
pr_title:
description: "The PR title to validate"
required: true
runs:
using: "composite"
steps:
- name: "Validate PR title format"
shell: bash
run: |
PR_TITLE="${{ inputs.pr_title }}"
echo "Validating PR title: $PR_TITLE"
# Define valid types and packages
VALID_TYPES="feat|fix|chore"
VALID_PKGS="auth|ci|cli|codegen|dashboard|deps|docs|examples|internal\/lib|mintlify-openapi|nhost-js|nixops|storage"
# Check if title matches the pattern TYPE(PKG): SUMMARY
if [[ ! "$PR_TITLE" =~ ^(${VALID_TYPES})\((${VALID_PKGS})\):\ .+ ]]; then
echo "❌ PR title does not follow the required format!"
echo ""
echo "Expected format: TYPE(PKG): SUMMARY"
echo ""
echo "Valid TYPEs:"
echo " - feat: mark this pull request as a feature"
echo " - fix: mark this pull request as a bug fix"
echo " - chore: mark this pull request as a maintenance item"
echo ""
echo "Valid PKGs:"
echo " - auth, ci, cli, codegen, dashboard, deps, docs, examples,"
echo " - mintlify-openapi, nhost-js, nixops, storage"
echo ""
echo "Example: feat(cli): add new command for database migrations"
exit 1
fi
echo "✅ PR title is valid!"

14
.github/dependabot.yaml vendored Normal file
View File

@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "github-actions"
open-pull-requests-limit: 10
directory: "/"
schedule:
interval: "daily"
time: "04:00"
commit-message:
prefix: "chore(ci)"
labels:
- "dependencies"
- "github_actions"
- "chore"

24
.github/labeler.yml vendored
View File

@@ -1,24 +0,0 @@
dashboard:
- dashboard/**/*
documentation:
- any:
- docs/**/*
examples:
- examples/**/*
sdk:
- packages/**/*
integrations:
- integrations/**/*
react:
- '{packages,examples,integrations}/*react*/**/*'
nextjs:
- '{packages,examples}/*next*/**/*'
vue:
- '{packages,examples,integrations}/*vue*/**/*'

84
.github/workflows/auth_checks.yaml vendored Normal file
View File

@@ -0,0 +1,84 @@
---
name: "auth: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/auth_checks.yaml'
- '.github/workflows/wf_check.yaml'
- '.github/workflows/wf_build_artifacts.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'internal/lib/**'
- 'vendor/**'
# auth
- 'services/auth/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: auth
PATH: services/auth
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
NHOST_PAT: ${{ secrets.NHOST_PAT }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: auth
PATH: services/auth
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

60
.github/workflows/auth_wf_release.yaml vendored Normal file
View File

@@ -0,0 +1,60 @@
---
name: "auth: release"
on:
workflow_call:
inputs:
GIT_REF:
required: true
type: string
VERSION:
required: true
type: string
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
jobs:
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
with:
NAME: auth
PATH: services/auth
GIT_REF: ${{ inputs.GIT_REF }}
VERSION: ${{ inputs.VERSION }}
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
push-docker-hub:
uses: ./.github/workflows/wf_docker_push_image.yaml
needs:
- build_artifacts
with:
NAME: auth
PATH: services/auth
VERSION: ${{ inputs.VERSION }}
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
push-docker-ecr:
uses: ./.github/workflows/wf_docker_push_image_ecr.yaml
needs:
- build_artifacts
with:
NAME: auth
PATH: services/auth
VERSION: ${{ inputs.VERSION }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
CONTAINER_REGISTRY: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-central-1.amazonaws.com

View File

@@ -1,157 +0,0 @@
name: Release
on:
push:
branches: [main]
paths-ignore:
- 'docs/**'
- 'examples/**'
- 'assets/**'
- '**.md'
- '!.changeset/**'
- 'LICENSE'
workflow_dispatch:
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: nhost
DASHBOARD_PACKAGE: '@nhost/dashboard'
jobs:
version:
name: Version
runs-on: ubuntu-latest
outputs:
hasChangesets: ${{ steps.changesets.outputs.hasChangesets }}
dashboardVersion: ${{ steps.dashboard.outputs.dashboardVersion }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
- name: Create PR or Publish release
id: changesets
uses: changesets/action@v1
with:
version: pnpm run ci:version
commit: 'chore: update versions'
title: 'chore: update versions'
publish: pnpm run release
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Check Dashboard tag
id: dashboard
if: steps.changesets.outputs.hasChangesets == 'false'
run: |
DASHBOARD_VERSION=$(jq -r .version dashboard/package.json)
GIT_TAG="${{ env.DASHBOARD_PACKAGE}}@$DASHBOARD_VERSION"
if [ -z "$(git tag -l | grep $GIT_TAG)" ]; then
echo "dashboardVersion=$DASHBOARD_VERSION" >> $GITHUB_OUTPUT
fi
test:
needs: version
name: Dashboard
if: needs.version.outputs.dashboardVersion != ''
uses: ./.github/workflows/dashboard.yaml
secrets: inherit
publish-vercel:
name: Publish to Vercel
needs:
- test
uses: ./.github/workflows/deploy-dashboard.yaml
with:
git_ref: ${{ github.ref_name }}
environment: production
secrets: inherit
publish-docker:
name: Publish to Docker Hub
runs-on: ubuntu-latest
needs:
- test
- version
- publish-vercel
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Add git tag
run: |
git tag "${{ env.DASHBOARD_PACKAGE }}@${{ needs.version.outputs.dashboardVersion }}"
git push origin --tags
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
nhost/dashboard
tags: |
type=raw,value=latest,enable=true
type=semver,pattern={{version}},value=v${{ needs.version.outputs.dashboardVersion }}
type=semver,pattern={{major}}.{{minor}},value=v${{ needs.version.outputs.dashboardVersion }}
type=semver,pattern={{major}},value=v${{ needs.version.outputs.dashboardVersion }}
type=sha
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push to Docker Hub
uses: docker/build-push-action@v4
timeout-minutes: 90
with:
context: .
file: ./dashboard/Dockerfile
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
TURBO_TOKEN=${{ env.TURBO_TOKEN }}
TURBO_TEAM=${{ env.TURBO_TEAM }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push: true
bump-cli:
name: Bump Dashboard version in the Nhost CLI
runs-on: ubuntu-latest
needs:
- version
- publish-docker
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
repository: nhost/cli
token: ${{ secrets.GH_PAT }}
fetch-depth: 0
- name: Bump version in source code
run: |
IMAGE=$(echo ${{ env.DASHBOARD_PACKAGE }} | sed 's/@\(.\+\)\/\(.\+\)/\1\\\/\2/g')
VERSION="${{ needs.version.outputs.dashboardVersion }}"
EXPRESSION='s/"'$IMAGE':[0-9]\+\.[0-9]\+\.[0-9]\+"/"'$IMAGE':'$VERSION'"/g'
find ./ -type f -exec sed -i -e $EXPRESSION {} \;
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GH_PAT }}
commit-message: 'chore: bump nhost/dashboard to ${{ needs.version.outputs.dashboardVersion }}'
branch: bump-dashboard-version
delete-branch: true
title: 'chore: bump nhost/dashboard to ${{ needs.version.outputs.dashboardVersion }}'
body: |
This PR bumps the Nhost Dashboard Docker image to version ${{ needs.version.outputs.dashboardVersion }}.

View File

@@ -1,172 +0,0 @@
name: Continuous Integration
on:
push:
branches: [main]
paths-ignore:
- 'assets/**'
- '**.md'
- 'LICENSE'
pull_request:
types: [opened, synchronize]
paths-ignore:
- 'assets/**'
- '**.md'
- 'LICENSE'
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: nhost
NEXT_PUBLIC_ENV: dev
NEXT_TELEMETRY_DISABLED: 1
NHOST_TEST_DASHBOARD_URL: ${{ vars.NHOST_TEST_DASHBOARD_URL }}
NHOST_TEST_WORKSPACE_NAME: ${{ vars.NHOST_TEST_WORKSPACE_NAME }}
NHOST_TEST_PROJECT_NAME: ${{ vars.NHOST_TEST_PROJECT_NAME }}
NHOST_TEST_ORGANIZATION_NAME: ${{ vars.NHOST_TEST_ORGANIZATION_NAME }}
NHOST_TEST_ORGANIZATION_SLUG: ${{ vars.NHOST_TEST_ORGANIZATION_SLUG }}
NHOST_TEST_PERSONAL_ORG_SLUG: ${{ vars.NHOST_TEST_PERSONAL_ORG_SLUG }}
NHOST_TEST_PROJECT_SUBDOMAIN: ${{ vars.NHOST_TEST_PROJECT_SUBDOMAIN }}
NHOST_PRO_TEST_PROJECT_NAME: ${{ vars.NHOST_PRO_TEST_PROJECT_NAME }}
NHOST_TEST_USER_EMAIL: ${{ secrets.NHOST_TEST_USER_EMAIL }}
NHOST_TEST_USER_PASSWORD: ${{ secrets.NHOST_TEST_USER_PASSWORD }}
NHOST_TEST_PROJECT_ADMIN_SECRET: ${{ secrets.NHOST_TEST_PROJECT_ADMIN_SECRET }}
jobs:
build:
name: Build @nhost packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
# * Install Node and dependencies. Package downloads will be cached for the next jobs.
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
BUILD: 'all'
- name: Check if the pnpm lockfile changed
id: changed-lockfile
uses: tj-actions/changed-files@v37
with:
files: pnpm-lock.yaml
# * Determine a pnpm filter argument for packages that have been modified.
# * If the lockfile has changed, we don't filter anything in order to run all the e2e tests.
- name: filter packages
id: filter-packages
if: steps.changed-lockfile.outputs.any_changed != 'true' && github.event_name == 'pull_request'
run: echo "filter=${{ format('--filter=...[origin/{0}]', github.base_ref) }}" >> $GITHUB_OUTPUT
# * List packagesthat has an `e2e` script, except the root, and return an array of their name and path
# * In a PR, only include packages that have been modified, and their dependencies
- name: List examples with an e2e script
id: set-matrix
run: |
PACKAGES=$(pnpm recursive list --depth -1 --parseable --filter='!nhost-root' ${{ steps.filter-packages.outputs.filter }} \
| xargs -I@ realpath --relative-to=$PWD @ \
| xargs -I@ jq "if (.scripts.e2e | length) != 0 then {name: .name, path: \"@\"} else null end" @/package.json \
| awk "!/null/" \
| jq -c --slurp 'map(select(length > 0))')
echo "matrix=$PACKAGES" >> $GITHUB_OUTPUT
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
unit:
name: Unit tests
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# * Install Node and dependencies. Package dependencies won't be downloaded again as they have been cached by the `build` job.
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
# * Run every `test` script in the workspace . Dependencies build is cached by Turborepo
- name: Run unit tests
run: pnpm run test:all
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: '**/coverage/coverage-final.json'
name: codecov-umbrella
- name: Create summary
run: |
echo '### Code coverage' >> $GITHUB_STEP_SUMMARY
echo 'Visit [codecov](https://app.codecov.io/gh/nhost/nhost/) to see the code coverage reports' >> $GITHUB_STEP_SUMMARY
lint:
name: Lint
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# * Install Node and dependencies. Package dependencies won't be downloaded again as they have been cached by the `build` job.
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
- name: Enforce Prettier formatting in dashboard
working-directory: ./dashboard
run: pnpm prettier --check "./**/*.tsx" --config prettier.config.js
# * Run every `lint` script in the workspace . Dependencies build is cached by Turborepo
- name: Lint
run: pnpm run lint:all
- name: Audit for vulnerabilities
run: pnpx audit-ci --config ./audit-ci.jsonc
e2e:
name: 'E2E (Package: ${{ matrix.package.path }})'
needs: build
if: ${{ needs.build.outputs.matrix != '[]' && needs.build.outputs.matrix != '' }}
strategy:
# * Don't cancel other matrices when one fails
fail-fast: false
matrix:
package: ${{ fromJson(needs.build.outputs.matrix) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
# * Install Node and dependencies. Package dependencies won't be downloaded again as they have been cached by the `build` job.
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
# * Install Nhost CLI if a `nhost/config.yaml` file is found
- name: Install Nhost CLI
if: hashFiles(format('{0}/nhost/config.yaml', matrix.package.path)) != ''
uses: ./.github/actions/nhost-cli
- name: Fetch Dashboard Preview URL
id: fetch-dashboard-preview-url
uses: zentered/vercel-preview-url@v1.1.9
if: github.ref_name != 'main'
env:
VERCEL_TOKEN: ${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
GITHUB_REF: ${{ github.ref_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
vercel_team_id: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
vercel_project_id: ${{ secrets.DASHBOARD_STAGING_VERCEL_PROJECT_ID }}
vercel_state: BUILDING,READY,INITIALIZING
- name: Set Dashboard Preview URL
if: steps.fetch-dashboard-preview-url.outputs.preview_url != ''
run: echo "NHOST_TEST_DASHBOARD_URL=https://${{ steps.fetch-dashboard-preview-url.outputs.preview_url }}" >> $GITHUB_ENV
# * Run the `ci` script of the current package of the matrix. Dependencies build is cached by Turborepo
- name: Run e2e tests
timeout-minutes: 20
run: pnpm --filter="${{ matrix.package.name }}" run e2e
- id: file-name
if: ${{ failure() }}
name: Transform package name into a valid file name
run: |
PACKAGE_FILE_NAME=$(echo "${{ matrix.package.name }}" | sed 's/@//g; s/\//-/g')
echo "fileName=$PACKAGE_FILE_NAME" >> $GITHUB_OUTPUT
# * 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@v4
with:
name: playwright-${{ steps.file-name.outputs.fileName }}
path: ${{format('{0}/playwright-report/**', matrix.package.path)}}

View File

@@ -0,0 +1,77 @@
---
name: "ci: create release"
on:
pull_request:
types: [closed]
branches:
- main
jobs:
create-release:
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.title, 'release(')
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
permissions:
id-token: write
contents: write
pull-requests: read
actions: write
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Extract project and version from PR title"
id: extract
run: |
TITLE="${{ github.event.pull_request.title }}"
PROJECT=$(echo "${TITLE}" | sed 's/release(\([^)]*\)).*/\1/')
if [ -z "$PROJECT" ]; then
echo "Error: Could not extract project name from PR title"
exit 1
fi
VERSION=$(echo "${TITLE}" | sed 's/.*release([^)]*):\W*\(.*\).*/\1/')
if [ -z "$VERSION" ]; then
echo "Error: Could not extract version from PR title"
exit 1
fi
cd $PROJECT
PROJECT_NAME=$(make release-tag-name)
echo "project=$PROJECT" >> $GITHUB_OUTPUT
echo "project_name=$PROJECT_NAME" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag=$PROJECT_NAME@$VERSION" >> $GITHUB_OUTPUT
- name: "Get unreleased changelog content"
id: changelog
run: |
cd ${{ steps.extract.outputs.project }}
CHANGELOG_CONTENT=$(nix develop .#cliff -c make changelog-get-unreleased)
echo "content<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG_CONTENT" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: "Create GitHub Release"
run: |
gh release create "${{ steps.extract.outputs.tag }}" \
--title "${{ steps.extract.outputs.tag }}" \
--notes "${{ steps.changelog.outputs.content }}" \
--target main
env:
# We need to use a PAT because GITHUB_TOKEN does not trigger workflows on releases
GH_TOKEN: ${{ secrets.GH_PAT }}

111
.github/workflows/ci_release.yaml vendored Normal file
View File

@@ -0,0 +1,111 @@
---
name: "ci: release"
on:
release:
types: [published]
jobs:
extract-project:
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 5
outputs:
project: ${{ steps.extract.outputs.project }}
version: ${{ steps.extract.outputs.version }}
steps:
- name: "Extract project and version from tag"
id: extract
run: |
TAG="${{ github.event.release.tag_name }}"
PROJECT=$(echo "${TAG}" | sed 's/@[^@]*$//')
if [ -z "$PROJECT" ]; then
echo "Error: Could not extract project name from tag"
exit 1
fi
VERSION=$(echo "${TAG}" | sed 's/.*@//')
if [ -z "$VERSION" ]; then
echo "Error: Could not extract version from tag"
exit 1
fi
echo "project=$PROJECT" >> $GITHUB_OUTPUT
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted project: $PROJECT, version: $VERSION"
auth:
needs: extract-project
if: needs.extract-project.outputs.project == 'auth'
uses: ./.github/workflows/auth_wf_release.yaml
with:
GIT_REF: ${{ github.sha }}
VERSION: ${{ needs.extract-project.outputs.version }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
cli:
needs: extract-project
if: needs.extract-project.outputs.project == 'cli'
uses: ./.github/workflows/cli_wf_release.yaml
with:
GIT_REF: ${{ github.sha }}
VERSION: ${{ needs.extract-project.outputs.version }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
GH_PAT: ${{ secrets.GH_PAT }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
dashboard:
needs: extract-project
if: needs.extract-project.outputs.project == '@nhost/dashboard'
uses: ./.github/workflows/dashboard_wf_release.yaml
with:
GIT_REF: ${{ github.sha }}
VERSION: ${{ needs.extract-project.outputs.version }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
VERCEL_TEAM_ID: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ secrets.DASHBOARD_VERCEL_PROJECT_ID }}
VERCEL_DEPLOY_TOKEN: ${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_PRODUCTION }}
GH_PAT: ${{ secrets.GH_PAT }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
nhost-js:
needs: extract-project
if: needs.extract-project.outputs.project == '@nhost/nhost-js'
uses: ./.github/workflows/wf_release_npm.yaml
with:
NAME: nhost-js
PATH: packages/nhost-js
VERSION: ${{ needs.extract-project.outputs.version }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_PRODUCTION }}
storage:
needs: extract-project
if: needs.extract-project.outputs.project == 'storage'
uses: ./.github/workflows/storage_wf_release.yaml
with:
GIT_REF: ${{ github.sha }}
VERSION: ${{ needs.extract-project.outputs.version }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -0,0 +1,73 @@
---
name: "ci: update changelog"
on:
push:
branches:
- main
jobs:
update-changelog:
if: ${{ !startsWith(github.event.head_commit.message, 'release(') }}
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
strategy:
matrix:
project: [cli, dashboard, packages/nhost-js, services/auth, services/storage]
permissions:
id-token: write
contents: write
pull-requests: write
actions: write
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Get next version"
id: version
run: |
cd ${{ matrix.project }}
TAG_NAME=$(make release-tag-name)
VERSION=$(nix develop .\#cliff -c make changelog-next-version)
if git tag | grep -qx "$TAG_NAME@$VERSION"; then
echo "Tag $TAG_NAME@$VERSION already exists, skipping release preparation"
else
echo "Tag $TAG_NAME@$VERSION does not exist, proceeding with release preparation"
echo "version=$VERSION" >> $GITHUB_OUTPUT
fi
- name: "Update changelog"
if: steps.version.outputs.version != ''
run: |
cd ${{ matrix.project }}
nix develop .\#cliff -c make changelog-update
- name: "Create Pull Request"
if: steps.version.outputs.version != ''
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "release(${{ matrix.project }}): ${{ steps.version.outputs.version }}"
title: "release(${{ matrix.project }}): ${{ steps.version.outputs.version }}"
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
body: |
Automated release preparation for ${{ matrix.project }} version ${{ steps.version.outputs.version }}
Changes:
- Updated CHANGELOG.md
branch: release/${{ matrix.project }}
delete-branch: true
labels: |
release,${{ matrix.project }}

100
.github/workflows/cli_checks.yaml vendored Normal file
View File

@@ -0,0 +1,100 @@
---
name: "cli: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/cli_checks.yaml'
- '.github/workflows/wf_check.yaml'
- '.github/workflows/wf_build_artifacts.yaml'
- '.github/workflows/cli_test_new_project.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# cli
- 'cli/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: cli
PATH: cli
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
NHOST_PAT: ${{ secrets.NHOST_PAT }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: cli
PATH: cli
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
test_cli_build:
uses: ./.github/workflows/cli_wf_test_new_project.yaml
needs:
- check-permissions
- build_artifacts
with:
NAME: cli
PATH: cli
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
NHOST_PAT: ${{ secrets.NHOST_PAT }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

122
.github/workflows/cli_wf_release.yaml vendored Normal file
View File

@@ -0,0 +1,122 @@
---
name: "cli: release"
on:
workflow_call:
inputs:
GIT_REF:
required: true
type: string
VERSION:
required: true
type: string
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
GH_PAT:
required: true
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
jobs:
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
with:
NAME: cli
PATH: cli
GIT_REF: ${{ inputs.GIT_REF }}
VERSION: ${{ inputs.VERSION }}
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
push-docker:
uses: ./.github/workflows/wf_docker_push_image.yaml
needs:
- build_artifacts
with:
NAME: cli
PATH: cli
VERSION: ${{ inputs.VERSION }}
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
build-multiplatform:
permissions:
id-token: write
contents: write
defaults:
run:
working-directory: cli
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 180
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: cli
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Compute common env vars
id: vars
run: |
echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT
ARCH=$([ "${{ runner.arch }}" == "X64" ] && echo "x86_64" || echo "aarch64")
echo "ARCH=${ARCH}" >> $GITHUB_OUTPUT
- name: "Build artifact"
run: |
make build-multiplatform
- name: "Upload assets"
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT }}
run: |
export VERSION=${{ steps.vars.outputs.VERSION }}
mkdir upload
tar cvzf upload/cli-$VERSION-darwin-amd64.tar.gz -C result/darwin/amd64 cli
tar cvzf upload/cli-$VERSION-darwin-arm64.tar.gz -C result/darwin/arm64 cli
tar cvzf upload/cli-$VERSION-linux-amd64.tar.gz -C result/linux/amd64 cli
tar cvzf upload/cli-$VERSION-linux-arm64.tar.gz -C result/linux/arm64 cli
cd upload
find . -type f -exec sha256sum {} + > ../checksums.txt
cd ..
cat checksums.txt
gh release upload \
--clobber "${{ github.ref_name }}" \
./upload/* checksums.txt
- name: "Store Nix cache"
uses: ./.github/actions/cache-nix
with:
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
if: always()

View File

@@ -0,0 +1,97 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
GIT_REF:
type: string
required: false
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
NHOST_PAT:
required: true
jobs:
tests:
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
defaults:
run:
working-directory: ${{ inputs.PATH }}
env:
NHOST_PAT: ${{ secrets.NHOST_PAT }}
permissions:
id-token: write
contents: write
actions: read
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: Collect Workflow Telemetry
uses: catchpoint/workflow-telemetry-action@v2
with:
comment_on_pr: false
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Get artifacts"
uses: actions/download-artifact@v6
with:
path: ~/artifacts
- name: "Inspect artifacts"
run: find ~/artifacts
- name: Load docker image
run: |
skopeo copy --insecure-policy \
dir:/home/runner/artifacts/cli-docker-image-x86_64-0.0.0-dev \
docker-daemon:cli:0.0.0-dev
- name: "Create a new project"
run: |
export NHOST_DOMAIN=staging.nhost.run
export NHOST_CONFIGSERVER_IMAGE=cli:0.0.0-dev
unzip /home/runner/artifacts/cli-artifact-x86_64-0.0.0-dev/result.zip
mkdir new-project
cd new-project
/home/runner/_work/nhost/nhost/cli/result/bin/cli login --pat ${{ secrets.NHOST_PAT }}
/home/runner/_work/nhost/nhost/cli/result/bin/cli init
/home/runner/_work/nhost/nhost/cli/result/bin/cli up --down-on-error
/home/runner/_work/nhost/nhost/cli/result/bin/cli down --volumes
- name: "Store Nix cache"
uses: ./.github/actions/cache-nix
with:
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
if: always()

81
.github/workflows/codegen_checks.yaml vendored Normal file
View File

@@ -0,0 +1,81 @@
---
name: "codegen: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/codegen_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# codegen
- 'tools/codegen/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: codegen
PATH: tools/codegen
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: codegen
PATH: tools/codegen
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: false
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -1,56 +0,0 @@
name: "CodeQL"
on:
push: {}
pull_request: {}
schedule:
- cron: '20 23 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -1,49 +0,0 @@
name: 'Dashboard'
on:
workflow_call:
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: nhost
NEXT_PUBLIC_ENV: dev
NEXT_TELEMETRY_DISABLED: 1
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
- name: Build the application
run: pnpm build:dashboard
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
- name: Run tests
run: pnpm test:dashboard
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ env.TURBO_TOKEN }}
TURBO_TEAM: ${{ env.TURBO_TEAM }}
- run: pnpm lint:dashboard

143
.github/workflows/dashboard_checks.yaml vendored Normal file
View File

@@ -0,0 +1,143 @@
---
name: "dashboard: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_build_artifacts.yaml'
- '.github/workflows/wf_check.yaml'
- '.github/workflows/dashboard_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# dashboard
- "dashboard/**"
# nhost-js
- packages/nhost-js/**
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
deploy-vercel:
uses: ./.github/workflows/wf_deploy_vercel.yaml
needs:
- check-permissions
with:
NAME: dashboard
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
ENVIRONMENT: preview
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
VERCEL_TEAM_ID: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ secrets.DASHBOARD_STAGING_VERCEL_PROJECT_ID }}
VERCEL_DEPLOY_TOKEN: ${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: dashboard
PATH: dashboard
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: true
OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]'
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
- build_artifacts
with:
NAME: dashboard
PATH: dashboard
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
e2e_staging:
uses: ./.github/workflows/dashboard_wf_e2e_staging.yaml
needs:
- check-permissions
- deploy-vercel
- build_artifacts
with:
NAME: dashboard
PATH: dashboard
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
NHOST_TEST_DASHBOARD_URL: ${{ needs.deploy-vercel.outputs.preview-url }}
NHOST_TEST_PROJECT_NAME: ${{ vars.NHOST_TEST_PROJECT_NAME }}
NHOST_TEST_ORGANIZATION_NAME: ${{ vars.NHOST_TEST_ORGANIZATION_NAME }}
NHOST_TEST_ORGANIZATION_SLUG: ${{ vars.NHOST_TEST_ORGANIZATION_SLUG }}
NHOST_TEST_PERSONAL_ORG_SLUG: ${{ vars.NHOST_TEST_PERSONAL_ORG_SLUG }}
NHOST_TEST_PROJECT_SUBDOMAIN: ${{ vars.NHOST_TEST_PROJECT_SUBDOMAIN }}
NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME: ${{ vars.NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME }}
NHOST_PRO_TEST_PROJECT_NAME: ${{ vars.NHOST_PRO_TEST_PROJECT_NAME }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
DASHBOARD_VERCEL_DEPLOY_TOKEN: ${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
DASHBOARD_VERCEL_TEAM_ID: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
DASHBOARD_STAGING_VERCEL_PROJECT_ID: ${{ secrets.DASHBOARD_STAGING_VERCEL_PROJECT_ID }}
NHOST_TEST_USER_EMAIL: ${{ secrets.NHOST_TEST_USER_EMAIL }}
NHOST_TEST_USER_PASSWORD: ${{ secrets.NHOST_TEST_USER_PASSWORD }}
NHOST_TEST_PROJECT_ADMIN_SECRET: ${{ secrets.NHOST_TEST_PROJECT_ADMIN_SECRET }}
NHOST_TEST_ONBOARDING_USER: ${{ secrets.NHOST_TEST_ONBOARDING_USER }}
PLAYWRIGHT_REPORT_ENCRYPTION_KEY: ${{ secrets.PLAYWRIGHT_REPORT_ENCRYPTION_KEY }}
NHOST_TEST_STAGING_SUBDOMAIN: ${{ secrets.NHOST_TEST_STAGING_SUBDOMAIN }}
NHOST_TEST_STAGING_REGION: ${{ secrets.NHOST_TEST_STAGING_REGION }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,49 @@
---
name: "dashboard: release staging"
on:
push:
branches:
- main
paths:
- '.github/workflows/wf_build_artifacts.yaml'
- '.github/workflows/wf_check.yaml'
- '.github/workflows/dashboard_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# dashboard
- "dashboard/**"
# nhost-js
- packages/nhost-js/**
jobs:
deploy-vercel:
uses: ./.github/workflows/wf_deploy_vercel.yaml
with:
NAME: dashboard
GIT_REF: ${{ github.sha }}
ENVIRONMENT: production
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
VERCEL_TEAM_ID: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ secrets.DASHBOARD_STAGING_VERCEL_PROJECT_ID }}
VERCEL_DEPLOY_TOKEN: ${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_STAGING }}

View File

@@ -0,0 +1,162 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
GIT_REF:
type: string
required: false
NHOST_TEST_DASHBOARD_URL:
type: string
required: true
NHOST_TEST_PROJECT_NAME:
type: string
required: true
NHOST_TEST_ORGANIZATION_NAME:
type: string
required: true
NHOST_TEST_ORGANIZATION_SLUG:
type: string
required: true
NHOST_TEST_PERSONAL_ORG_SLUG:
type: string
required: true
NHOST_TEST_PROJECT_SUBDOMAIN:
type: string
required: true
NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME:
type: string
required: true
NHOST_PRO_TEST_PROJECT_NAME:
type: string
required: true
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
DASHBOARD_VERCEL_DEPLOY_TOKEN:
required: true
DASHBOARD_VERCEL_TEAM_ID:
required: true
DASHBOARD_STAGING_VERCEL_PROJECT_ID:
required: true
NHOST_TEST_USER_EMAIL:
required: true
NHOST_TEST_USER_PASSWORD:
required: true
NHOST_TEST_ONBOARDING_USER:
required: true
NHOST_TEST_PROJECT_ADMIN_SECRET:
required: true
PLAYWRIGHT_REPORT_ENCRYPTION_KEY:
required: true
NHOST_TEST_STAGING_SUBDOMAIN:
required: true
NHOST_TEST_STAGING_REGION:
required: true
concurrency:
group: dashboard-e2e-staging
cancel-in-progress: false
env:
NEXT_PUBLIC_ENV: dev
NEXT_TELEMETRY_DISABLED: 1
NHOST_TEST_DASHBOARD_URL: ${{ inputs.NHOST_TEST_DASHBOARD_URL }}
NHOST_TEST_PROJECT_NAME: ${{ inputs.NHOST_TEST_PROJECT_NAME }}
NHOST_TEST_ORGANIZATION_NAME: ${{ inputs.NHOST_TEST_ORGANIZATION_NAME }}
NHOST_TEST_ORGANIZATION_SLUG: ${{ inputs.NHOST_TEST_ORGANIZATION_SLUG }}
NHOST_TEST_PERSONAL_ORG_SLUG: ${{ inputs.NHOST_TEST_PERSONAL_ORG_SLUG }}
NHOST_TEST_PROJECT_SUBDOMAIN: ${{ inputs.NHOST_TEST_PROJECT_SUBDOMAIN }}
NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME: ${{ inputs.NHOST_TEST_PROJECT_REMOTE_SCHEMA_NAME }}
NHOST_PRO_TEST_PROJECT_NAME: ${{ inputs.NHOST_PRO_TEST_PROJECT_NAME }}
NHOST_TEST_USER_EMAIL: ${{ secrets.NHOST_TEST_USER_EMAIL }}
NHOST_TEST_USER_PASSWORD: ${{ secrets.NHOST_TEST_USER_PASSWORD }}
NHOST_TEST_PROJECT_ADMIN_SECRET: ${{ secrets.NHOST_TEST_PROJECT_ADMIN_SECRET }}
NHOST_TEST_ONBOARDING_USER: ${{ secrets.NHOST_TEST_ONBOARDING_USER }}
NHOST_TEST_STAGING_SUBDOMAIN: ${{ secrets.NHOST_TEST_STAGING_SUBDOMAIN }}
NHOST_TEST_STAGING_REGION: ${{ secrets.NHOST_TEST_STAGING_REGION }}
jobs:
tests:
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
defaults:
run:
working-directory: ${{ inputs.PATH }}
permissions:
id-token: write
contents: write
actions: read
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: Collect Workflow Telemetry
uses: catchpoint/workflow-telemetry-action@v2
with:
comment_on_pr: false
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Start CLI
run: |
nix develop .\#dashboard -c make dev-env-cli-up
- name: Run e2e tests
run: nix develop .\#dashboard -c pnpm e2e
- name: Run e2e onboarding tests
run: nix develop .\#dashboard -c pnpm e2e:onboarding
- name: Run e2e local tests
run: nix develop .\#dashboard -c pnpm e2e:local
- name: Encrypt Playwright report
if: failure()
run: |
tar -czf playwright-report.tar.gz playwright-report/
openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 \
-in playwright-report.tar.gz \
-out playwright-report.tar.gz.enc \
-k "${{ secrets.PLAYWRIGHT_REPORT_ENCRYPTION_KEY }}"
rm playwright-report.tar.gz
- name: Upload encrypted Playwright report
uses: actions/upload-artifact@v5
if: failure()
with:
name: encrypted-playwright-report-${{ github.run_id }}
path: dashboard/playwright-report.tar.gz.enc
retention-days: 1
- name: "Store Nix cache"
uses: ./.github/actions/cache-nix
with:
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
if: always()

View File

@@ -0,0 +1,105 @@
---
name: 'dashboard: release'
on:
workflow_call:
inputs:
GIT_REF:
required: true
type: string
VERSION:
required: true
type: string
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
VERCEL_TEAM_ID:
required: true
VERCEL_PROJECT_ID:
required: true
VERCEL_DEPLOY_TOKEN:
required: true
DISCORD_WEBHOOK:
required: false
GH_PAT:
required: true
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
jobs:
deploy-vercel:
uses: ./.github/workflows/wf_deploy_vercel.yaml
with:
NAME: dashboard
GIT_REF: ${{ inputs.GIT_REF }}
ENVIRONMENT: production
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
VERCEL_TEAM_ID: ${{ secrets.VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_DEPLOY_TOKEN: ${{ secrets.VERCEL_DEPLOY_TOKEN }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
with:
NAME: dashboard
PATH: dashboard
GIT_REF: ${{ inputs.GIT_REF }}
VERSION: ${{ inputs.VERSION }}
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
push-docker:
uses: ./.github/workflows/wf_docker_push_image.yaml
needs:
- build_artifacts
with:
NAME: dashboard
PATH: dashboard
VERSION: ${{ inputs.VERSION }}
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
bump-cli:
name: Bump Dashboard version in the Nhost CLI
runs-on: ubuntu-latest
needs:
- push-docker
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
token: ${{ secrets.GH_PAT }}
- name: Bump version in source code
run: |
find cli -type f -exec sed -i 's/"nhost\/dashboard:[^"]*"/"nhost\/dashboard:${{ inputs.VERSION }}"/g' {} +
sed -i 's/nhost\/dashboard:[^)]*/nhost\/dashboard:${{ inputs.VERSION }}/g' docs/reference/cli/commands.mdx
- name: "Create Pull Request"
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GH_PAT }}
title: "chore(cli): bump nhost/dashboard to ${{ inputs.VERSION }}"
commit-message: "chore: bump nhost/dashboard to ${{ inputs.VERSION }}"
committer: GitHub <noreply@github.com>
author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com>
body: |
This PR bumps the Nhost Dashboard Docker image to version ${{ inputs.VERSION }}.
branch: bump-dashboard-version
base: main
delete-branch: true

View File

@@ -1,58 +0,0 @@
name: 'dashboard: release form'
on:
workflow_dispatch:
inputs:
git_ref:
type: string
description: 'Branch, tag, or commit SHA'
required: true
environment:
type: choice
description: 'Deployment environment'
required: true
default: staging
options:
- staging
- production
workflow_call:
inputs:
git_ref:
required: true
type: string
environment:
required: true
type: string
jobs:
publish-vercel:
name: Publish to Vercel
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.git_ref }}
fetch-depth: 0
- name: Install Node and dependencies
uses: ./.github/actions/install-dependencies
with:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
- name: Setup Vercel CLI
run: pnpm add -g vercel
- name: Trigger Vercel deployment
env:
VERCEL_ORG_ID: ${{ secrets.DASHBOARD_VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ inputs.environment == 'production' && secrets.DASHBOARD_VERCEL_PROJECT_ID || secrets.DASHBOARD_STAGING_VERCEL_PROJECT_ID }}
run: |
echo "Deploying to: ${{ inputs.environment }}..."
vercel pull --environment=production --token=${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
vercel build --prod --token=${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}
vercel deploy --prebuilt --prod --token=${{ secrets.DASHBOARD_VERCEL_DEPLOY_TOKEN }}

81
.github/workflows/docs_checks.yaml vendored Normal file
View File

@@ -0,0 +1,81 @@
---
name: "docs: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/dashboard_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# docs
- docs/**
# nhost-js
- packages/nhost-js/**
# apis
- 'services/auth/docs/openapi.yaml'
- 'services/storage/controller/openapi.yaml'
# cli
- cli/**
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: docs
PATH: docs
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,98 @@
---
name: "examples/demos: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/examples_demos_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# codegen
- 'tools/codegen/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# nhpst-js
- 'packages/nhost-js/**'
# demos
- 'examples/demos/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: demos
PATH: examples/demos
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: demos
PATH: examples/demos
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: false
OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]'
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,98 @@
---
name: "examples/guides: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/examples_guides_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# codegen
- 'tools/codegen/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# nhpst-js
- 'packages/nhost-js/**'
# guides
- 'examples/guides/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: guides
PATH: examples/guides
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: guides
PATH: examples/guides
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: false
OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]'
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,98 @@
---
name: "examples/tutorials: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/examples_tutorials_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# codegen
- 'tools/codegen/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# nhpst-js
- 'packages/nhost-js/**'
# tutorials
- 'examples/tutorials/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: tutorials
PATH: examples/tutorials
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: tutorials
PATH: examples/tutorials
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: false
OS_MATRIX: '["blacksmith-2vcpu-ubuntu-2404"]'
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -1,13 +1,13 @@
---
name: "gen: AI review"
on:
pull_request:
pull_request_target:
types: [opened, reopened, ready_for_review]
issue_comment:
jobs:
pr_agent_job:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 10
permissions:
issues: write
@@ -16,12 +16,13 @@ jobs:
steps:
- name: PR Agent action step
id: pragent
uses: Codium-ai/pr-agent@v0.26
uses: Codium-ai/pr-agent@v0.30
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENAI_KEY: ${{ secrets.OPENAI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
config.max_model_tokens: 100000
config.model: "anthropic/claude-3-5-sonnet-20240620"
config.model_turbo: "anthropic/claude-3-5-sonnet-20240620"
ignore.glob: "['pnpm-lock.yaml','**/pnpm-lock.yaml']"
config.model: ${{ vars.GEN_AI_MODEL }}
config.model_turbo: $${{ vars.GEN_AI_MODEL_TURBO }}
config.max_model_tokens: 200000
config.custom_model_max_tokens: 200000
ignore.glob: "['pnpm-lock.yaml','**/pnpm-lock.yaml', 'vendor/**','**/client_gen.go','**/models_gen.go','**/generated.go','**/*.gen.go']"

View File

@@ -0,0 +1,54 @@
name: "CodeQL"
on:
schedule:
- cron: '20 23 * * 3'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript', 'go' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v4
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4

View File

@@ -15,17 +15,15 @@ jobs:
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
uses: actions/checkout@v5
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- uses: nixbuild/nix-quick-install-action@v26
- uses: nixbuild/nix-quick-install-action@v34
with:
nix_version: 2.16.2
nix_conf: |
@@ -53,7 +51,7 @@ jobs:
"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update dependencies

View File

@@ -1,15 +0,0 @@
name: 'Pull Request Labeler'
on:
- pull_request_target
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
with:
repo-token: '${{ secrets.GH_PAT }}'
sync-labels: ''

98
.github/workflows/nhost-js_checks.yaml vendored Normal file
View File

@@ -0,0 +1,98 @@
---
name: "nhost-js: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/nhost-js_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'vendor/**'
# codegen
- 'tools/codegen/**'
# common javascript
- ".npmrc"
- ".prettierignore"
- ".prettierrc.js"
- "audit-ci.jsonc"
- "package.json"
- "pnpm-workspace.yaml"
- "pnpm-lock.yaml"
- "turbo.json"
# nhost-js
- 'packages/nhost-js/**'
# apis
- 'services/auth/docs/openapi.yaml'
- 'services/storage/controller/openapi.yaml'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: nhost-js
PATH: packages/nhost-js
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: nhost-js
PATH: packages/nhost-js
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: false
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

73
.github/workflows/nixops_checks.yaml vendored Normal file
View File

@@ -0,0 +1,73 @@
---
name: "nixops: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/wf_check.yaml'
- '.github/workflows/nixops_checks.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: nixops
PATH: nixops
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: nixops
PATH: nixops
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,35 @@
---
name: "nixops: release"
on:
push:
branches:
- main
paths:
- 'flake.lock'
- 'nixops/project.nix'
jobs:
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
with:
NAME: nixops
PATH: nixops
GIT_REF: ${{ inputs.GIT_REF }}
VERSION: latest
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
push-docker:
uses: ./.github/workflows/wf_docker_push_image.yaml
needs:
- build_artifacts
with:
NAME: nixops
PATH: nixops
VERSION: latest
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

84
.github/workflows/storage_checks.yaml vendored Normal file
View File

@@ -0,0 +1,84 @@
---
name: "storage: check and build"
on:
pull_request_target:
paths:
- '.github/workflows/storage_checks.yaml'
- '.github/workflows/wf_check.yaml'
- '.github/workflows/wf_build_artifacts.yaml'
# common build
- 'flake.nix'
- 'flake.lock'
- 'nixops/**'
- 'build/**'
# common go
- '.golangci.yaml'
- 'go.mod'
- 'go.sum'
- 'internal/lib/**'
- 'vendor/**'
# storage
- 'services/storage/**'
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || format('push-{0}', github.sha) }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check-permissions:
runs-on: ubuntu-latest
steps:
- run: |
echo "github.event_name: ${{ github.event_name }}"
echo "github.event.pull_request.author_association: ${{ github.event.pull_request.author_association }}"
- name: "This task will run and fail if user has no permissions and label safe_to_test isn't present"
if: "github.event_name == 'pull_request_target' && ! ( contains(github.event.pull_request.labels.*.name, 'safe_to_test') || contains(fromJson('[\"OWNER\", \"MEMBER\", \"COLLABORATOR\"]'), github.event.pull_request.author_association) )"
run: |
exit 1
tests:
uses: ./.github/workflows/wf_check.yaml
needs:
- check-permissions
with:
NAME: storage
PATH: services/storage
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
NHOST_PAT: ${{ secrets.NHOST_PAT }}
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
needs:
- check-permissions
with:
NAME: storage
PATH: services/storage
GIT_REF: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }}
VERSION: 0.0.0-dev # we use a fixed version here to avoid unnecessary rebuilds
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_PRODUCTION_CORE_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
remove_label:
runs-on: ubuntu-latest
needs:
- check-permissions
steps:
- uses: actions-ecosystem/action-remove-labels@v1
with:
labels: |
safe_to_test
if: contains(github.event.pull_request.labels.*.name, 'safe_to_test')

View File

@@ -0,0 +1,60 @@
---
name: "storage: release"
on:
workflow_call:
inputs:
GIT_REF:
required: true
type: string
VERSION:
required: true
type: string
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
jobs:
build_artifacts:
uses: ./.github/workflows/wf_build_artifacts.yaml
with:
NAME: storage
PATH: services/storage
GIT_REF: ${{ inputs.GIT_REF }}
VERSION: ${{ inputs.VERSION }}
DOCKER: true
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
push-docker-hub:
uses: ./.github/workflows/wf_docker_push_image.yaml
needs:
- build_artifacts
with:
NAME: storage
PATH: services/storage
VERSION: ${{ inputs.VERSION }}
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
push-docker-ecr:
uses: ./.github/workflows/wf_docker_push_image_ecr.yaml
needs:
- build_artifacts
with:
NAME: storage
PATH: services/storage
VERSION: ${{ inputs.VERSION }}
secrets:
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
CONTAINER_REGISTRY: ${{ secrets.AWS_ACCOUNT_ID }}.dkr.ecr.eu-central-1.amazonaws.com

View File

@@ -1,78 +0,0 @@
name: Test Nhost CLI action
on:
pull_request:
branches: [main]
types: [opened, synchronize]
paths:
- '.github/actions/nhost-cli/**'
- '!.github/actions/nhost-cli/**/*.md'
jobs:
install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI
uses: ./.github/actions/nhost-cli
- name: should succeed running the nhost command
run: nhost
start:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI and start the application
uses: ./.github/actions/nhost-cli
with:
path: packages/nhost-js
start: true
- name: should be running
run: curl -sSf 'https://local.hasura.local.nhost.run' > /dev/null
stop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI, start and stop the application
uses: ./.github/actions/nhost-cli
with:
path: packages/nhost-js
start: true
stop: true
- name: should have no live docker container
run: |
if [ -z "docker ps -q" ]; then
echo "Some docker containers are still running"
docker ps
exit 1
fi
config:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI and run the application
uses: ./.github/actions/nhost-cli
with:
path: packages/nhost-js
start: true
- name: should find the injected hasura-auth version
run: |
VERSION=$(curl -sSf 'https://local.auth.local.nhost.run/v1/version')
EXPECTED_VERSION='{"version":"v0.20.1"}'
if [ "$VERSION" != "$EXPECTED_VERSION" ]; then
echo "Expected version $EXPECTED_VERSION but got $VERSION"
exit 1
fi
version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install the Nhost CLI
uses: ./.github/actions/nhost-cli
with:
version: v1.0.1
- name: should find the correct version
run: nhost --version | head -n 1 | grep v1.0.1 || exit 1

View File

@@ -0,0 +1,114 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
GIT_REF:
type: string
required: false
VERSION:
type: string
required: true
PATH:
type: string
required: true
DOCKER:
type: boolean
required: true
OS_MATRIX:
type: string
required: false
default: '["blacksmith-4vcpu-ubuntu-2404-arm", "blacksmith-2vcpu-ubuntu-2404"]'
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
jobs:
artifacts:
permissions:
id-token: write
contents: write
defaults:
run:
working-directory: ${{ inputs.PATH }}
strategy:
matrix:
os: ${{ fromJSON(inputs.OS_MATRIX) }}
fail-fast: true
runs-on: ${{ matrix.os }}
timeout-minutes: 180
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: "Validate PR title"
uses: ./.github/actions/validate-pr-title
with:
pr_title: ${{ github.event.pull_request.title }}
if: ${{ github.event_name == 'pull_request' }}
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Compute common env vars
id: vars
run: |
echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT
ARCH=$([ "${{ runner.arch }}" == "X64" ] && echo "x86_64" || echo "aarch64")
echo "ARCH=${ARCH}" >> $GITHUB_OUTPUT
- name: "Build artifact"
run: |
make build
zip -r result.zip result
- name: "Push artifact to artifact repository"
uses: actions/upload-artifact@v5
with:
name: ${{ inputs.NAME }}-artifact-${{ steps.vars.outputs.ARCH }}-${{ steps.vars.outputs.VERSION }}
path: ${{ inputs.PATH }}/result.zip
retention-days: 7
- name: "Build docker image"
run: |
sudo chmod 755 /run/containers
sudo mkdir -p "/run/containers/$(id -u runner)"
sudo chown runner: "/run/containers/$(id -u runner)"
make build-docker-image
if: ${{ ( inputs.DOCKER ) }}
- name: "Push docker image to artifact repository"
uses: actions/upload-artifact@v5
with:
name: ${{ inputs.NAME }}-docker-image-${{ steps.vars.outputs.ARCH }}-${{ steps.vars.outputs.VERSION }}
path: ${{ inputs.PATH }}/result
retention-days: 7
if: ${{ ( inputs.DOCKER ) }}
- name: "Store Nix cache"
uses: ./.github/actions/cache-nix
with:
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
if: always()

95
.github/workflows/wf_check.yaml vendored Normal file
View File

@@ -0,0 +1,95 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
GIT_REF:
type: string
required: false
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
NHOST_PAT:
required: false
jobs:
tests:
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
defaults:
run:
working-directory: ${{ inputs.PATH }}
env:
NHOST_PAT: ${{ secrets.NHOST_PAT }}
permissions:
id-token: write
contents: write
actions: read
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: "Validate PR title"
uses: ./.github/actions/validate-pr-title
with:
pr_title: ${{ github.event.pull_request.title }}
if: ${{ github.event_name == 'pull_request' }}
- name: Collect Workflow Telemetry
uses: catchpoint/workflow-telemetry-action@v2
with:
comment_on_pr: false
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Verify if we need to build"
id: verify-build
run: |
export drvPath=$(make check-dry-run)
echo "Derivation path: $drvPath"
nix path-info --store s3://nhost-nix-cache\?region=eu-central-1 $drvPath \
&& export BUILD_NEEDED=no \
|| export BUILD_NEEDED=yes
echo BUILD_NEEDED=$BUILD_NEEDED >> $GITHUB_OUTPUT
echo DERIVATION_PATH=$drvPath >> $GITHUB_OUTPUT
- name: "Start containters for integration tests"
run: |
nix develop .\#${{ inputs.NAME }} -c make dev-env-up
if: ${{ steps.verify-build.outputs.BUILD_NEEDED == 'yes' }}
- name: "Run checks"
run: make check
if: ${{ steps.verify-build.outputs.BUILD_NEEDED == 'yes' }}
- name: "Store Nix cache"
uses: ./.github/actions/cache-nix
with:
NIX_CACHE_PRIV_KEY: ${{ secrets.NIX_CACHE_PRIV_KEY }}
if: always()

120
.github/workflows/wf_deploy_vercel.yaml vendored Normal file
View File

@@ -0,0 +1,120 @@
name: 'deploy to vercel'
on:
workflow_call:
inputs:
NAME:
required: true
type: string
GIT_REF:
required: true
type: string
ENVIRONMENT:
required: true
type: string
secrets:
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
VERCEL_TEAM_ID:
required: true
VERCEL_PROJECT_ID:
required: true
VERCEL_DEPLOY_TOKEN:
required: true
DISCORD_WEBHOOK:
required: false
TURBO_TOKEN:
required: true
outputs:
preview-url:
description: "The preview URL from Vercel deployment"
value: ${{ jobs.publish-vercel.outputs.preview-url }}
jobs:
publish-vercel:
name: Publish to Vercel
runs-on: blacksmith-2vcpu-ubuntu-2404
outputs:
preview-url: ${{ steps.deploy.outputs.preview-url }} # Add this line
permissions:
id-token: write
contents: write
actions: read
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ inputs.GIT_REF }}
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Trigger Vercel deployment
id: deploy
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_TEAM_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: nhost
run: |
TARGET_OPTS="--target=${{ inputs.ENVIRONMENT }}"
echo "Deploying to: ${{ inputs.ENVIRONMENT }}..."
nix develop .\#vercel -c \
vercel pull --environment=${{ inputs.ENVIRONMENT }} --token=${{ secrets.VERCEL_DEPLOY_TOKEN }}
nix develop .\#vercel -c \
vercel build $TARGET_OPTS --token=${{ secrets.VERCEL_DEPLOY_TOKEN }}
nix develop .\#vercel -c \
vercel deploy $TARGET_OPTS --prebuilt --token=${{ secrets.VERCEL_DEPLOY_TOKEN }} | tee /tmp/vercel_output
PREVIEW_URL=$(cat /tmp/vercel_output)
echo "\n🔗🔗🔗 Preview URL: $PREVIEW_URL"
echo "preview-url=$PREVIEW_URL" >> $GITHUB_OUTPUT
- uses: marocchino/sticky-pull-request-comment@v2
with:
header: "vercel-${{ inputs.NAME }}-${{ inputs.ENVIRONMENT }}"
message: |
# Vercel Deployment Info - ${{ inputs.NAME }}
* URL: ${{ steps.deploy.outputs.preview-url }}
* Git Ref: `${{ inputs.GIT_REF }}`
* Commit: `${{ github.event.pull_request.head.sha || github.sha }}`
if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target'
- name: Send Discord notification
if: always()
uses: ./.github/actions/discord-notification
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK }}
title: "Deployed ${{ inputs.NAME }} to Vercel"
description: |
**Environment**: ${{ inputs.ENVIRONMENT }}
**URL**: ${{ steps.deploy.outputs.preview-url }}
**Triggered by**: ${{ github.actor }}
**Status**: ${{ job.status }}
**Details**:
- Git Ref: ${{ inputs.GIT_REF }}
- Commit: ${{ github.event.pull_request.head.sha || github.sha }}
color: ${{ job.status == 'success' && '5763719' || '15548997' }}
- run: rm -rf .vercel
if: always()

View File

@@ -0,0 +1,79 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
VERSION:
type: string
required: true
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
jobs:
push-to-registry:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
id-token: write
contents: write
defaults:
run:
working-directory: ${{ inputs.PATH }}
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
fetch-depth: 0
submodules: true
- name: "Compute common env vars"
id: vars
run: |
echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT
- name: "Get artifacts"
uses: actions/download-artifact@v6
with:
path: ~/artifacts
- name: "Inspect artifacts"
run: find ~/artifacts
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: "Push docker image to docker hub"
run: |
export NAME=${{ inputs.NAME }}
export VERSION=${{ steps.vars.outputs.VERSION }}
export CONTAINER_REGISTRY=nhost
export CONTAINER_NAME=$CONTAINER_REGISTRY/$NAME
for ARCH in "x86_64" "aarch64"; do
skopeo copy --insecure-policy \
dir:/home/runner/artifacts/${{ inputs.NAME }}-docker-image-$ARCH-$VERSION \
docker-daemon:$CONTAINER_NAME:$VERSION-$ARCH
docker push $CONTAINER_NAME:$VERSION-$ARCH
done
docker manifest create \
$CONTAINER_NAME:$VERSION \
--amend $CONTAINER_NAME:$VERSION-x86_64 \
--amend $CONTAINER_NAME:$VERSION-aarch64
docker manifest push $CONTAINER_NAME:$VERSION

View File

@@ -0,0 +1,84 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
VERSION:
type: string
required: true
secrets:
AWS_ACCOUNT_ID:
required: true
CONTAINER_REGISTRY:
required: true
jobs:
push-to-registry:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
id-token: write
contents: write
defaults:
run:
working-directory: ${{ inputs.PATH }}
steps:
- name: "Check out repository"
uses: actions/checkout@v5
with:
fetch-depth: 0
submodules: true
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: "Login to Amazon ECR"
uses: aws-actions/amazon-ecr-login@v2
with:
mask-password: 'true'
- name: "Compute common env vars"
id: vars
run: |
echo "VERSION=$(make get-version VER=${{ inputs.VERSION }})" >> $GITHUB_OUTPUT
- name: "Get artifacts"
uses: actions/download-artifact@v6
with:
path: ~/artifacts
- name: "Inspect artifacts"
run: find ~/artifacts
- name: "Push docker image to docker hub"
run: |
export NAME=${{ inputs.NAME }}
export VERSION=${{ steps.vars.outputs.VERSION }}
export CONTAINER_REGISTRY=${{ secrets.CONTAINER_REGISTRY }}
export CONTAINER_NAME=$CONTAINER_REGISTRY/$NAME
for ARCH in "x86_64" "aarch64"; do
skopeo copy --insecure-policy \
dir:/home/runner/artifacts/${{ inputs.NAME }}-docker-image-$ARCH-$VERSION \
docker-daemon:$CONTAINER_NAME:$VERSION-$ARCH
docker push $CONTAINER_NAME:$VERSION-$ARCH
done
docker manifest create \
$CONTAINER_NAME:$VERSION \
--amend $CONTAINER_NAME:$VERSION-x86_64 \
--amend $CONTAINER_NAME:$VERSION-aarch64
docker manifest push $CONTAINER_NAME:$VERSION

95
.github/workflows/wf_release_npm.yaml vendored Normal file
View File

@@ -0,0 +1,95 @@
---
on:
workflow_call:
inputs:
NAME:
type: string
required: true
PATH:
type: string
required: true
VERSION:
type: string
required: true
secrets:
NPM_TOKEN:
required: true
AWS_ACCOUNT_ID:
required: true
NIX_CACHE_PUB_KEY:
required: true
NIX_CACHE_PRIV_KEY:
required: true
DISCORD_WEBHOOK:
required: false
jobs:
release:
runs-on: blacksmith-2vcpu-ubuntu-2404
timeout-minutes: 30
defaults:
run:
working-directory: ${{ inputs.PATH }}
permissions:
id-token: write
contents: write
actions: read
steps:
- name: "Check out repository"
uses: actions/checkout@v5
- name: Configure aws
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/github-actions-nhost-${{ github.event.repository.name }}
aws-region: eu-central-1
- name: Setup Nix with Cache
uses: ./.github/actions/setup-nix
with:
NAME: ${{ inputs.NAME }}
NIX_CACHE_PUB_KEY: ${{ secrets.NIX_CACHE_PUB_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Build package"
run: make build
- name: "Copy build output"
run: cp -r result/dist .
- name: "Set package version"
run: |
nix develop .#pnpm -c pnpm version ${{ inputs.VERSION }} --no-git-tag-version
- name: "Determine npm tag"
id: npm-tag
run: |
if [[ "${{ inputs.VERSION }}" =~ (alpha|beta|dev|rc) ]]; then
echo "tag=beta" >> $GITHUB_OUTPUT
else
echo "tag=latest" >> $GITHUB_OUTPUT
fi
- name: "Publish to npm"
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
nix develop .#pnpm -c pnpm publish --tag ${{ steps.npm-tag.outputs.tag }} --no-git-checks
- name: Send Discord notification
if: always()
uses: ./.github/actions/discord-notification
with:
webhook-url: ${{ secrets.DISCORD_WEBHOOK }}
title: "Published ${{ inputs.NAME }}@${{ inputs.VERSION }} to npm"
description: |
**Status**: ${{ job.status }}
**Tag**: ${{ steps.npm-tag.outputs.tag }}
**Triggered by**: ${{ github.actor }}
**Details**:
- Version: ${{ inputs.VERSION }}
- Package: ${{ inputs.NAME }}
color: ${{ job.status == 'success' && '5763719' || '15548997' }}

8
.gitignore vendored
View File

@@ -65,3 +65,11 @@ out/
.direnv/
/.vscode/
result
.vitest
.claude
letsencrypt/*

78
.golangci.yaml Normal file
View File

@@ -0,0 +1,78 @@
version: "2"
issues:
max-issues-per-linter: 0
max-same-issues: 0
linters:
default: all
settings:
funlen:
lines: 65
wsl_v5:
allow-whole-block: true
disable:
- canonicalheader
- depguard
- gomoddirectives
- musttag
- nlreturn
- tagliatelle
- varnamelen
- wsl
- noinlineerr
- funcorder
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
rules:
# general rules
- linters:
- funlen
- ireturn
- goconst
path: _test\.go
- linters:
- lll
source: '^//go:generate '
- linters:
- gochecknoglobals
text: Version is a global variable
- linters:
- ireturn
- lll
path: schema\.resolvers\.go
# storage service specific rules
- linters:
- gochecknoglobals
- gochecknoinits
path: services/storage/cmd/
- linters:
- gochecknoglobals
path: services/storage/cmd/controller/version.go
- linters:
- funlen
- ireturn
- exhaustruct
path: services/storage/.*_test\.go
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- gofumpt
- goimports
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
- schema\.resolvers\.go

8
.npmrc
View File

@@ -1,2 +1,8 @@
prefer-workspace-packages = true
auto-install-peers = false
auto-install-peers = true
# without this setting, pnpm breaks monorepos with multiple versions of the same package
shared-workspace-lockfile = false
# do not enable back, this leads to unlisted dependencies being used
hoist = false

View File

@@ -16,6 +16,15 @@ Contributions are made to Nhost repos via Issues and Pull Requests (PRs). A few
- We work hard to make sure issues are handled on time, but it could take a while to investigate the root cause depending on the impact. A friendly ping in the comment thread to the submitter or a contributor can help draw attention if your issue is blocking.
- If you've never contributed before, see [the first-timer's guide](https://github.com/firstcontributions/first-contributions) for resources and tips on getting started.
### AI-Assisted Contributions
We have specific policies regarding AI-assisted contributions:
- **Issues**: Bug reports and feature requests that are clearly AI-generated will not be accepted and will be closed immediately. Please write your issues in your own words to ensure they are clear, specific, and contain the necessary context.
- **Pull Requests**: Contributions with the help of AI are permitted, but you are ultimately responsible for the quality of your submission and for ensuring it follows our contributing guidelines. The PR description must be written in your own words. Additionally, please remove any superfluous code comments introduced by AI tools before submitting. PRs that clearly violate this rule will be closed without further review.
In all cases, contributors must ensure their submissions are thoughtful, well-tested, and meet the project's quality standards.
### Issues
Issues should be used to report problems with Nhost, request a new feature, or discuss potential changes before a PR is created.
@@ -24,28 +33,20 @@ If you find an Issue that addresses the problem you're having, please add your r
### Pull Requests
Please have a look at our [developers guide](https://github.com/nhost/nhost/blob/main/DEVELOPERS.md) to start coding!
PRs to our libraries are always welcome and can be a quick way to get your fix or improvement slated for the next release. In general, PRs should:
- Only fix/add the functionality in question **OR** address wide-spread whitespace/style issues, not both.
- Add unit or integration tests for fixed or changed functionality (if a test suite exists).
- Address a single concern in the least number of changed lines as possible.
- Include documentation in the repo or on our [docs site](https://docs.nhost.io/get-started).
- Be accompanied by a complete Pull Request template (loaded automatically when a PR is created).
## Monorepo Structure
For changes that address core functionality or require breaking changes (e.g., a major release), it's best to open an Issue to discuss your proposal first. This is not required but can save time creating and reviewing changes.
This repository is a monorepo that contains multiple packages and applications. The structure is as follows:
In general, we follow the ["fork-and-pull" Git workflow](https://github.com/susam/gitpr)
- `cli` - The Nhost CLI
- `dashboard` - The Nhost Dashboard
- `docs` - Documentation
- `examples` - Various example projects
- `packages/nhost-js` - The Nhost JavaScript/TypeScript SDK
- `services/auth` - Nhost Authentication service
- `services/storage` - Nhost Storage service
- `tools/codegen` - Internal code generation tool to build the SDK
- `tools/mintlify-openapi` - Internal tool to generate reference documentation for Mintlify from an OpenAPI spec.
1. Fork the repository to your own Github account
2. Clone the project to your machine
3. Create a branch locally with a succinct but descriptive name. All changes should be part of a branch and submitted as a pull request - your branches should be prefixed with one of:
- `bug/` for bug fixes
- `feat/` for features
- `chore/` for configuration changes
- `docs/` for documentation changes
4. Commit changes to the branch
5. Following any formatting and testing guidelines specific to this repo
6. Push changes to your fork
7. Open a PR in our repository and follow the PR template to review the changes efficiently.
For details about those projects and how to contribure, please refer to their respective `README.md` and `CONTRIBUTING.md` files.

View File

@@ -1,163 +0,0 @@
# Developer Guide
## Requirements
### Node.js v18
_⚠️ Node.js v16 is also supported for the time being but support will be dropped in the near future_.
### [pnpm](https://pnpm.io/) package manager
The easiest way to install `pnpm` if it's not installed on your machine yet is to use `npm`:
```sh
$ npm install -g pnpm
```
### [Nhost CLI](https://docs.nhost.io/cli)
- The CLI is primarily used for running the E2E tests
- Please refer to the [installation guide](https://docs.nhost.io/get-started/cli-workflow/install-cli) if you have not installed it yet
## File Structure
The repository is organized as a monorepo, with the following structure (only relevant folders are shown):
```
assets/ # Assets used in the README
config/ # Configuration files for the monorepo
dashboard/ # Dashboard
docs/ # Documentation website
examples/ # Example projects
packages/ # Core packages
integrations/ # These are packages that rely on the core packages
```
## Get started
### Installation
First, clone this repository:
```sh
git clone https://github.com/nhost/nhost
```
Then, install the dependencies with `pnpm`:
```sh
$ cd nhost
$ pnpm install
```
### Development
Although package references are correctly updated on the fly for TypeScript, example projects and the dashboard won't see the changes because they are depending on the build output. To fix this, you can run packages in development mode.
Running packages in development mode from the root folder is as simple as:
```sh
$ pnpm dev
```
Our packages are linked together using [PNPM's workspace](https://pnpm.io/workspaces) feature. Next.js and Vite automatically detect changes in the dependencies and rebuild everything, so the changes will be reflected in the examples and the dashboard.
**Note:** It's possible that Next.js or Vite throw an error when you run `pnpm dev`. Restarting the process should fix it.
### Use Examples
Examples are a great way to test your changes in practice. Make sure you've `pnpm dev` running in your terminal and then run an example.
Let's follow the instructions to run [react-apollo example](https://github.com/nhost/nhost/blob/main/examples/react-apollo/README.md).
## Edit Documentation
The easier way to contribute to our documentation is to go to the `docs` folder and follow the [instructions to start local development](https://github.com/nhost/nhost/blob/main/docs/README.md):
```sh
$ cd docs
# not necessary if you've already done this step somewhere in the repository
$ pnpm install
$ pnpm start
```
## Run Test Suites
### Unit Tests
You can run the unit tests with the following command from the repository root:
```sh
$ pnpm test
```
### E2E Tests
Each package that defines end-to-end tests embeds their own Nhost configuration, that will be automatically when running the tests. As a result, you must make sure you are not running the Nhost CLI before running the tests.
You can run the e2e tests with the following command from the repository root:
```sh
$ pnpm e2e
```
## Changesets
If you've made changes to the packages, you must describe those changes so that they can be reflected in the next release.
We use [changesets](https://github.com/changesets/changesets) to support our versioning and release workflows. When you submit a pull request, a bot checks if changesets are present, and if not, it asks you to add them.
To create a changeset, run the following command from the repository root:
```sh
$ pnpm changeset
```
This command will guide you through the process of creating a changeset. It will create a file in the `.changeset` directory.
You can take a look at the changeset documentation: [How to add a changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md).
### Selecting the Version
When you create a changeset, you will be asked to select the version of the package that you are bumping. The versioning scheme is as follows:
- **major**
- For breaking changes (e.g: changing the function signature, etc.)
- Should be avoided as much as possible as it will require users to update their code. Instead, consider supporting both the old and the new API simultaneously for a while.
- For example: `v1.5.8` -> `v2.0.0`
- **minor**
- For new features (e.g: adding a new page to the dashboard, etc.)
- For example: `v1.5.8` -> `v1.6.0`
- **patch**
- For bug fixes (e.g: fixing a typo, etc.)
- For example: `v1.5.8` -> `v1.5.9`
### Writing Good Changesets
A concise summary that describes the changes should be added to each PR. This summary will be used as the changeset description.
The following structure is used for describing changes:
- **The type of the change**:
- fix
- feat
- chore
- docs
- **The scope of the change** (_broader scopes (e.g: dashboard, hasura-storage-js, etc.) are not recommended as GitHub Releases already contain which project is being bumped_):
- projects
- deployments
- deps
- etc.
- **A short summary of the changes that were made**
**Examples:**
- `fix(deployments): use correct timestamp for deployment details`
- `chore(deps): bump @types/react to v18.2.8`
- `feat(secrets): enable secrets`
- etc.
You can always take a look at examples of changesets in the [GitHub Releases section](https://github.com/nhost/nhost/releases).

16
Makefile Normal file
View File

@@ -0,0 +1,16 @@
.PHONY: envrc-install
envrc-install: ## Copy envrc.sample to all project folders
@for f in $$(find . -name "project.nix"); do \
echo "Copying envrc.sample to $$(dirname $$f)/.envrc"; \
cp ./envrc.sample $$(dirname $$f)/.envrc; \
done
.PHONY: nixops-container-env
nixops-container-env: ## Enter a NixOS container environment
docker run \
-it \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ./:/build \
-w /build \
nixops:0.0.0-dev \
bash

View File

@@ -4,7 +4,7 @@
# Nhost
<a href="https://docs.nhost.io/introduction#quick-start-guides">Quickstart</a>
<a href="https://docs.nhost.io/getting-started/overview">Quickstart</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="http://nhost.io/">Website</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
@@ -12,7 +12,7 @@
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://nhost.io/blog">Blog</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://twitter.com/nhost">Twitter</a>
<a href="https://x.com/nhost">X</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://nhost.io/discord">Discord</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
@@ -33,10 +33,10 @@ Nhost consists of open source software:
- Database: [PostgreSQL](https://www.postgresql.org/)
- Instant GraphQL API: [Hasura](https://hasura.io/)
- Authentication: [Hasura Auth](https://github.com/nhost/hasura-auth/)
- Storage: [Hasura Storage](https://github.com/nhost/hasura-storage)
- Authentication: [Auth](https://github.com/nhost/nhost/tree/main/services/auth)
- Storage: [Storage](https://github.com/nhost/nhost/tree/main/services/storage)
- Serverless Functions: Node.js (JavaScript and TypeScript)
- [Nhost CLI](https://docs.nhost.io/development/cli/overview) for local development
- [Nhost CLI](https://github.com/nhost/nhost/tree/main/cli) for local development
## Architecture of Nhost
@@ -61,27 +61,34 @@ Visit [https://docs.nhost.io](http://docs.nhost.io) for the complete documentati
Since Nhost is 100% open source, you can self-host the whole Nhost stack. Check out the example [docker-compose file](https://github.com/nhost/nhost/tree/main/examples/docker-compose) to self-host Nhost.
## Sign In and Make a Graphql Request
## Sign In and Make a GraphQL Request
Install the `@nhost/nhost-js` package and start build your app:
Install the `@nhost/nhost-js` package and start building your app:
```jsx
import { NhostClient } from '@nhost/nhost-js'
```ts
import { createClient } from '@nhost/nhost-js'
const nhost = new NhostClient({
subdomain: '<your-subdomain>',
region: '<your-region>'
const nhost = createClient({
subdomain: 'your-project',
region: 'eu-central-1'
})
await nhost.auth.signIn({ email: 'elon@musk.com', password: 'spaceX' })
await nhost.auth.signInEmailPassword({
email: 'user@example.com',
password: 'password123'
})
await nhost.graphql.request(`{
users {
id
displayName
email
}
}`)
await nhost.graphql.request({
query: `
query GetUsers {
users {
id
displayName
email
}
}
`
})
```
## Frontend Agnostic
@@ -89,33 +96,21 @@ await nhost.graphql.request(`{
Nhost is frontend agnostic, which means Nhost works with all frontend frameworks.
<div align="center">
<a href="https://docs.nhost.io/guides/quickstarts/nextjs"><img src="assets/nextjs.svg"/></a>
<a href="https://docs.nhost.io/reference/javascript"><img src="assets/nuxtjs.svg"/></a>
<a href="https://docs.nhost.io/guides/quickstarts/react"><img src="assets/react.svg"/></a>
<a href="https://docs.nhost.io/reference/javascript"><img src="assets/react-native.svg"/></a>
<a href="https://docs.nhost.io/reference/javascript"><img src="assets/svelte.svg"/></a>
<a href="https://docs.nhost.io/guides/quickstarts/vue"><img src="assets/vuejs.svg"/></a>
<a href="https://docs.nhost.io/getting-started/quickstart/nextjs"><img src="assets/nextjs.svg"/></a>
<a href="https://docs.nhost.io/reference/javascript/nhost-js/nhost-client"><img src="assets/nuxtjs.svg"/></a>
<a href="https://docs.nhost.io/getting-started/quickstart/react"><img src="assets/react.svg"/></a>
<a href="https://docs.nhost.io/getting-started/quickstart/reactnative"><img src="assets/react-native.svg"/></a>
<a href="https://docs.nhost.io/reference/javascript/nhost-js/nhost-client"><img src="assets/svelte.svg"/></a>
<a href="https://docs.nhost.io/getting-started/quickstart/vue"><img src="assets/vuejs.svg"/></a>
</div>
# Resources
- Start developing locally with the [Nhost CLI](https://docs.nhost.io/cli)
- Start developing locally with the [Nhost CLI](https://docs.nhost.io/platform/cli/local-development)
## Nhost Clients
- [JavaScript/TypeScript](https://docs.nhost.io/reference/javascript)
- [JavaScript/TypeScript](https://docs.nhost.io/reference/javascript/nhost-js/main)
- [Dart and Flutter](https://github.com/nhost/nhost-dart)
- [React](https://docs.nhost.io/reference/react)
- [Next.js](https://docs.nhost.io/reference/nextjs)
- [Vue](https://docs.nhost.io/reference/vue)
## Integrations
- [Apollo](./integrations/apollo#nhostapollo)
- [React Apollo](./integrations/react-apollo#nhostreact-apollo)
- [React URQL](./integrations/react-urql#nhostreact-urql)
- [Stripe GraphQL API](./integrations/stripe-graphql-js#nhoststripe-graphql-js)
- [Google Translation GraphQL API](./integrations/google-translation#nhostgoogle-translation)
## Applications
@@ -140,7 +135,7 @@ This repository, and most of our other open source projects, are licensed under
Here are some ways of contributing to making Nhost better:
- **[Try out Nhost](https://docs.nhost.io/introduction)**, and think of ways to make the service better. Let us know here on GitHub.
- **[Try out Nhost](https://docs.nhost.io)**, and think of ways to make the service better. Let us know here on GitHub.
- Join our [Discord](https://discord.com/invite/9V7Qb2U) and connect with other members to share and learn from.
- Send a pull request to any of our [open source repositories](https://github.com/nhost) on Github. Check our [contribution guide](https://github.com/nhost/nhost/blob/main/CONTRIBUTING.md) and our [developers guide](https://github.com/nhost/nhost/blob/main/DEVELOPERS.md) for more details about how to contribute. We're looking forward to your contribution!
@@ -150,4 +145,4 @@ Here are some ways of contributing to making Nhost better:
<p align="center">
<img width="720" src="https://contrib.rocks/image?repo=nhost/nhost" alt="A table of avatars from the project's contributors" />
</p>
</a>
</a>

View File

@@ -2,5 +2,8 @@
// $schema provides code completion hints to IDEs.
"$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json",
"moderate": true,
"allowlist": ["vue-template-compiler"]
"allowlist": [
"GHSA-9965-vmph-33xx", // https://github.com/advisories/GHSA-9965-vmph-33xx Update package once have a fix
"GHSA-7mvr-c777-76hp" // https://github.com/advisories/GHSA-7mvr-c777-76hp Update package once Nix side is also updated
]
}

43
biome.json Normal file
View File

@@ -0,0 +1,43 @@
{
"$schema": "https://biomejs.dev/schemas/2.2.2/schema.json",
"vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
"files": { "ignoreUnknown": false },
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"complexity": {
"useLiteralKeys": "off"
}
},
"includes": ["**", "!.next", "!node_modules"]
},
"javascript": { "formatter": { "quoteStyle": "double" }, "globals": [] },
"assist": {
"enabled": true,
"actions": { "source": { "organizeImports": "on" } }
},
"overrides": [
{
"includes": ["**/*.svelte", "**/*.astro", "**/*.vue"],
"linter": {
"rules": {
"style": {
"useConst": "off",
"useImportType": "off"
},
"correctness": {
"noUnusedVariables": "off",
"noUnusedImports": "off"
}
}
}
}
]
}

29
build/configs/README.md Normal file
View File

@@ -0,0 +1,29 @@
# Configuration Files
This directory contains standardized configurations for various tools and frameworks used across the repository.
## Available Configurations
- [**TypeScript (`/tsconfig`)**](./tsconfig/README.md): Centralized TypeScript configurations for different project types
- Standard base configuration with strict type checking
- Specialized configurations for libraries, frontend apps, and Node.js
- Documented usage patterns and extension points
## Using the Configurations
Each configuration directory contains a README with specific instructions on how to use the configurations in your projects.
## Benefits
- **Consistency**: All projects follow the same standards and best practices
- **Maintainability**: Configuration changes can be made in one place and propagated to all projects
- **Onboarding**: New projects can quickly adopt the standard configurations
## Adding New Configurations
When adding new centralized configurations:
1. Create a new subdirectory with an appropriate name
2. Include a README.md explaining the configurations
3. Document both the usage and the reasoning behind configuration choices

View File

@@ -0,0 +1,58 @@
# TypeScript Configurations
This directory contains centralized TypeScript configurations that can be extended by projects in the monorepo. Using centralized configurations ensures consistency across projects and makes it easier to maintain and update TypeScript settings.
## Base Configurations
- `base.json`: Core TypeScript settings used by all projects
- `library.json`: Settings for libraries and SDK packages
- `frontend.json`: Settings for frontend applications (React, Next.js)
- `node.json`: Settings for Node.js applications and scripts
- `vite.json`: Settings for Vite configuration files
## Usage
In your project's `tsconfig.json` file, extend the appropriate base configuration:
```json
{
"$schema": "https://json.schemastore.org/tsconfig",
"extends": "../../configs/tsconfig/frontend.json",
"compilerOptions": {
// Project-specific overrides here
}
}
```
## Configuration Features
### Common Features
- Strict type checking
- Modern ES features
- Comprehensive linting rules
- Proper module resolution
### Library Configuration
- Declaration file generation
- Source maps
- Composite project support
### Frontend Configuration
- JSX support
- DOM typings
- Bundler module resolution
- Compatible with both React and Next.js
- Configurable for specific framework needs
## Creating New Projects
When creating a new project:
1. Identify the appropriate base configuration for your project type
2. Create a minimal `tsconfig.json` that extends the base configuration from the `configs/tsconfig` directory
3. Add only project-specific customizations to your `tsconfig.json`
This approach ensures all projects follow the same standards while allowing for project-specific needs.

View File

@@ -0,0 +1,34 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Base Configuration",
"compilerOptions": {
/* Environment and Features */
"lib": ["ESNext"],
"target": "ES2022",
"module": "ESNext",
"moduleDetection": "force",
"skipLibCheck": true,
/* Type Checking */
"strict": true,
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noUncheckedIndexedAccess": true,
"noPropertyAccessFromIndexSignature": true,
"allowUnusedLabels": false,
"allowUnreachableCode": false,
/* Module Resolution */
"esModuleInterop": true,
"resolveJsonModule": true,
"forceConsistentCasingInFileNames": true,
/* Advanced Options */
"verbatimModuleSyntax": true,
"isolatedModules": true
},
"exclude": ["node_modules", "**/dist", "**/build"]
}

View File

@@ -0,0 +1,25 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Frontend Configuration",
"extends": "./base.json",
"compilerOptions": {
/* Frontend Specific */
"lib": ["ESNext", "DOM", "DOM.Iterable"],
"jsx": "react-jsx",
/* Module Resolution */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"noEmit": true,
/* Additional Options */
"allowJs": true,
"allowSyntheticDefaultImports": true,
"incremental": true,
/* Next.js Compatibility (ignored by non-Next.js projects) */
"plugins": []
},
"include": ["src/**/*", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules", "**/node_modules/*"]
}

View File

@@ -0,0 +1,30 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Library/SDK Configuration",
"extends": "./base.json",
"compilerOptions": {
/* Output Configuration */
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "./dist",
"noEmit": false,
"composite": true,
"importHelpers": true,
/* Library-specific */
"moduleResolution": "node",
/* Types */
"types": ["node"]
},
"include": ["src/**/*"],
"exclude": [
"node_modules",
"**/*.test.ts",
"**/*.spec.ts",
"**/__tests__/**",
"dist",
"**/dist/*"
]
}

View File

@@ -0,0 +1,23 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Node.js Configuration",
"extends": "./base.json",
"compilerOptions": {
"lib": ["ESNext"],
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2022",
"allowJs": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"isolatedModules": true,
/* Node-specific options */
"sourceMap": true,
/* Types */
"types": ["node"]
},
"exclude": ["node_modules", "**/node_modules/*"]
}

View File

@@ -0,0 +1,14 @@
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "Vite Configuration",
"extends": "./node.json",
"compilerOptions": {
"composite": true,
"skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
"allowSyntheticDefaultImports": true,
"types": ["node"]
},
"include": ["vite.config.ts"]
}

View File

@@ -0,0 +1,127 @@
PROJ_DIR=$(abspath .)
PROJ=$(subst $(ROOT_DIR)/,,$(PROJ_DIR))
NAME=$(notdir $(PROJ))
include $(ROOT_DIR)/build/makefiles/release.makefile
ifdef VER
VERSION=$(shell echo $(VER) | sed -e 's/^v//g' -e 's/\//_/g')
else
VERSION=$(shell grep -oP 'version\s*=\s*"\K[^"]+' project.nix | head -n 1)
endif
ifeq ($(shell uname -m),x86_64)
ARCH?=x86_64
else ifeq ($(shell uname -m),arm64)
ARCH?=aarch64
else ifeq ($(shell uname -m),aarch64)
ARCH?=aarch64
else
ARCH?=FIXME-$(shell uname -m)
endif
ifeq ($(shell uname -o),Darwin)
OS?=darwin
else
OS?=linux
endif
ifeq ($(CI),true)
docker-build-options=--option system $(ARCH)-linux --extra-platforms ${ARCH}-linux
endif
.PHONY: help
help: ## Show this help.
@echo
@awk 'BEGIN { \
FS = "##"; \
printf "Usage: make \033[36m<target>\033[0m\n"} \
/^[a-zA-Z_-]+%?:.*?##/ { printf " \033[36m%-38s\033[0m %s\n", $$1, $$2 } ' \
$(MAKEFILE_LIST)
.PHONY: print-vars
print-vars: ## print all variables
@$(foreach V,$(sort $(.VARIABLES)), \
$(if $(filter-out environment% default automatic, \
$(origin $V)),$(info $V=$($V) ($(value $V)))))
.PHONY: get-version
get-version: ## Return version
@sed -i '/^\s*version = "0.0.0-dev";/s//version = "${VERSION}";/' project.nix
@sed -i '/^\s*created = "1970-.*";/s//created = "${shell date --utc '+%Y-%m-%dT%H:%M:%SZ'}";/' project.nix
@echo $(VERSION)
.PHONY: develop
develop: ## Start a nix develop shell
nix develop .\#$(NAME)
.PHONY: _check-pre
_check-pre: ## Pre-checks before running nix flake check
.PHONY: check
check: _check-pre ## Run nix flake check
nix build \
--print-build-logs \
.\#checks.$(ARCH)-$(OS).$(NAME)
.PHONY: check-dry-run
check-dry-run: ## Returns the derivation of the check
@nix build \
--dry-run \
--json \
.\#checks.$(ARCH)-$(OS).$(NAME) | jq -r '.[].outputs.out'
.PHONY: build
build: ## Build application and places the binary under ./result/bin
nix build \
--print-build-logs \
.\#packages.$(ARCH)-$(OS).$(NAME)
.PHONY: build-dry-run
build-dry-run: ## Run nix flake check
@nix build \
--dry-run \
--json \
.\#packages.$(ARCH)-$(OS).$(NAME) | jq -r '.[].outputs.out'
.PHONY: build-nixops-dry-run
build-nixops-dry-run: ## Checks if nixops needs to be rebuilt
@nix build \
--dry-run \
--json \
.\#packages.$(ARCH)-$(OS).nixops | jq -r '.[].outputs.out'
.PHONY: build-docker-image
build-docker-image: ## Build docker container for native architecture
nix build $(docker-build-options) --show-trace \
.\#packages.$(ARCH)-linux.$(NAME)-docker-image \
--print-build-logs
nix develop \#skopeo -c \
skopeo copy --insecure-policy dir:./result docker-daemon:$(NAME):$(VERSION)
.PHONY: build-docker-image-import-bare
build-docker-image-import-bare:
skopeo copy --insecure-policy dir:./result docker-daemon:$(NAME):$(VERSION)
.PHONY: dev-env-up
dev-env-up: _dev-env-build _dev-env-up ## Starts development environment
.PHONY: dev-env-down
dev-env-down: _dev-env-down ## Stops development environment
.PHONY: dev-env-build
dev-env-build: _dev-env-build ## Builds development environment

View File

@@ -0,0 +1,30 @@
TAG_NAME?=$(NAME)
TAG_PATTERN="^$(TAG_NAME)@\d+\.\d+\.\d+$$"
.PHONY: changelog-init
changelog-init: ## Initialize changelog using git-cliff
@git cliff -u --tag-pattern "$(TAG_PATTERN)" --bump --tag="$(NAME)/$(VERSION)" --output CHANGELOG.md
.PHONY: changelog-next-version
changelog-next-version: ## Get next version using git-cliff
@git cliff -u --bumped-version --tag-pattern $(TAG_PATTERN) $(CLIFF_OPTS) | sed 's/.*@//'
.PHONY: changelog-get-released
changelog-get-released: ## Get changelog for the latest release using git-cliff
@git cliff -l --bump --tag-pattern $(TAG_PATTERN) $(CLIFF_OPTS) --strip all
.PHONY: changelog-get-unreleased
changelog-get-unreleased: ## Get changelog for the following release using git-cliff
@git cliff -u --bump --tag-pattern $(TAG_PATTERN) $(CLIFF_OPTS) --strip all
.PHONY: changelog-update
changelog-update: ## Update changelog using git-cliff
@git cliff -u --bump --tag-pattern $(TAG_PATTERN) $(CLIFF_OPTS) --prepend CHANGELOG.md
.PHONY: release-tag-name
release-tag-name: ## Get the tag name for the current version
@echo "$(TAG_NAME)"

95
cli/CHANGELOG.md Normal file
View File

@@ -0,0 +1,95 @@
## [cli@1.34.5] - 2025-11-06
### ⚙️ Miscellaneous Tasks
- *(nixops)* Bump go to 1.25.3 and nixpkgs due to CVEs (#3652)
- *(cli)* Udpate certs and schema (#3675)
- *(cli)* Bump nhost/dashboard to 2.41.0 (#3669)
# Changelog
All notable changes to this project will be documented in this file.
## [cli@1.34.4] - 2025-10-28
### 🐛 Bug Fixes
- *(cli)* Update NEXT_PUBLIC_NHOST_HASURA_MIGRATIONS_API_URL correctly (#3643)
## [cli@1.34.3] - 2025-10-27
### ⚙️ Miscellaneous Tasks
- *(cli)* Update schema (#3622)
- *(cli)* Bump nhost/dashboard to 2.40.0 (#3629)
## [cli@1.34.2] - 2025-10-20
### ⚙️ Miscellaneous Tasks
- *(cli)* Minor fix to download script when specifying version (#3602)
- *(cli)* Update schema (#3613)
## [cli@1.34.1] - 2025-10-13
### 🐛 Bug Fixes
- *(cli)* Remove references to mcp-nhost (#3575)
- *(cli)* Workaround os.Rename issues when src and dst are on different partitions (#3599)
### ⚙️ Miscellaneous Tasks
- *(auth)* Change some references to deprecated hasura-auth (#3584)
- *(docs)* Udpated README.md and CONTRIBUTING.md (#3587)
## [cli@1.34.0] - 2025-10-09
### 🚀 Features
- *(cli)* Added mcp server functionality from mcp-nhost (#3550)
- *(cli)* Mcp: move configuration to .nhost folder and integrate cloud credentials (#3555)
- *(cli)* Mcp: added support for environment variables in the configuration (#3556)
- *(cli)* MCP refactor and documentation prior to official release (#3571)
### 🐛 Bug Fixes
- *(dashboard)* Remove NODE_ENV from restricted env vars (#3573)
### ⚙️ Miscellaneous Tasks
- *(nixops)* Update nhost-cli (#3554)
- *(cli)* Bump nhost/dashboard to 2.38.4 (#3539)
## [cli@1.33.0] - 2025-10-02
### 🚀 Features
- *(cli)* Migrate from urfave/v2 to urfave/v3 (#3545)
### 🐛 Bug Fixes
- *(cli)* Disable tls on AUTH_SERVER_URL when auth uses custom port (#3549)
- *(cli)* Fix breaking change in go-getter dependency (#3551)
### ⚙️ Miscellaneous Tasks
- *(cli)* Update certs (#3552)
## [cli@1.32.2] - 2025-10-01
### ⚙️ Miscellaneous Tasks
- *(cli)* Remove hasura- prefix from auth/storage images (#3538)
## [cli@1.32.1] - 2025-09-29
### ⚙️ Miscellaneous Tasks
- *(ci)* Minor improvements to the ci (#3527)
- *(cli)* Update schema (#3529)

84
cli/CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,84 @@
# Developer Guide
## Requirements
We use nix to manage the development environment, the build process and for running tests.
### With Nix (Recommended)
Run `nix develop \#cli` to get a complete development environment.
### Without Nix
Check `project.nix` (checkDeps, buildInputs, buildNativeInputs) for manual dependency installation. Alternatively, you can run `make nixops-container-env` in the root of the repository to enter a Docker container with nix and all dependencies pre-installed (note it is a large image).
## Development Workflow
### Running Tests
**With Nix:**
```bash
make dev-env-up
make check
```
**Without Nix:**
```bash
# Start development environment
make dev-env-up
# Lint Go code
golangci-lint run ./...
# Run tests
go test -v ./...
```
### Formatting
Format code before committing:
```bash
golines -w --base-formatter=gofumpt .
```
## Building
### Local Build
Build the project (output in `./result`):
```bash
make build
```
### Docker Image
Build and import Docker image with skopeo:
```bash
make build-docker-image
```
If you run the command above inside the dockerized nixops-container-env and you get an error like:
```
FATA[0000] writing blob: io: read/write on closed pipe
```
then you need to run the following command outside of the container (needs skopeo installed on the host):
```bash
cd cli
make build-docker-image-import-bare
```
### Multi-Platform Builds
Build for multiple platforms (Darwin/Linux, ARM64/AMD64):
```bash
make build-multiplatform
```
This produces binaries for:
- darwin/arm64
- darwin/amd64
- linux/arm64
- linux/amd64

29
cli/Makefile Normal file
View File

@@ -0,0 +1,29 @@
ROOT_DIR?=$(abspath ../)
include $(ROOT_DIR)/build/makefiles/general.makefile
.PHONY: _check-pre
_check-pre:
@sed -i 's/$$NHOST_PAT/$(NHOST_PAT)/' get_access_token.sh
.PHONY: _dev-env-up
_dev-env-up:
@echo "Nothing to do"
.PHONY: _dev-env-down
_dev-env-down:
@echo "Nothing to do"
.PHONY: _dev-env-build
_dev-env-build:
@echo "Nothing to do"
.PHONY: build-multiplatform
build-multiplatform: ## Build cli for all supported platforms
nix build \
--print-build-logs \
.\#packages.$(ARCH)-$(OS).cli-multiplatform

89
cli/README.md Normal file
View File

@@ -0,0 +1,89 @@
<div align="center">
<h1 style="font-size: 3em; font-weight: bold;">Nhost CLI</h1>
</div>
[Nhost](http://nhost.io) is an open-source Firebase alternative with GraphQL.
The Nhost CLI is used to set up a local development environment. This environment will automatically track database migrations and Hasura metadata.
It's recommended to use the Nhost CLI and the [Nhost GitHub Integration](https://docs.nhost.io/platform/github-integration) to develop locally and automatically deploy changes to production with a git-based workflow (similar to Netlify & Vercel).
## Services
- [Nhost Dashboard](https://github.com/nhost/nhost/tree/main/dashboard)
- [Postgres Database](https://www.postgresql.org/)
- [GraphQL Engine](https://github.com/hasura/graphql-engine)
- [Auth](https://github.com/nhost/nhost/main/auth)
- [Storage](https://github.com/nhost/nhost/main/storage)
- [Nhost Serverless Functions](https://github.com/nhost/functions)
- [Minio S3](https://github.com/minio/minio)
- [Mailhog](https://github.com/mailhog/MailHog)
## Get Started
### Install the Nhost CLI
```bash
sudo curl -L https://raw.githubusercontent.com/nhost/nhost/main/cli/get.sh | bash
```
### Initialize a project
```bash
nhost init
```
### Initialize a project with a remote project as a starting point
```bash
nhost init --remote
```
### Start the development environment
```bash
nhost up
```
### Use the Nhost Dashboard
```bash
nhost up --ui nhost
```
## MCP Server
The Nhost cli ships with an MCP server that lets you interact with your Nhost projects through AI assistants using the Model Context Protocol. It provides secure, controlled access to your GraphQL data, project configuration, and documentation—with granular permissions that let you specify exactly which queries and mutations an LLM can execute. For development, it streamlines your workflow by enabling AI-assisted schema management, metadata changes, and migrations, while providing direct access to your GraphQL schema for intelligent query building.
You can read more about the MCP server in the [MCP Server documentation](https://docs.nhost.io/platform/cli/mcp/overview).
## Documentation
- [Get started with Nhost CLI (longer version)](https://docs.nhost.io/platform/overview/get-started-with-nhost-cli)
- [Nhost CLI](https://docs.nhost.io/platform/cli)
- [Reference](https://docs.nhost.io/reference/cli)
- [MCP Server](https://docs.nhost.io/platform/cli/mcp/overview)
## Build from Source
Make sure you have [Go](https://golang.org/doc/install) 1.18 or later installed.
The source code includes a self-signed certificate for testing purposes. Nhost workers with configured access to AWS may use the `cert.sh` script to generate a real certificate from Let's Encrypt.
```bash
go build -o /usr/local/bin/nhost
```
This will build the binary available as the `nhost` command in the terminal.
## Dependencies
- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/)
- [curl](https://curl.se/)
- [Git](https://git-scm.com/downloads)
## Supported Platforms
- MacOS
- Linux
- Windows WSL2

49
cli/cert.sh Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/sh
set -euo pipefail
certbot certonly \
-v \
--dns-route53 \
-d local.auth.nhost.run \
-d local.dashboard.nhost.run \
-d local.db.nhost.run \
-d local.functions.nhost.run \
-d local.graphql.nhost.run \
-d local.hasura.nhost.run \
-d local.mailhog.nhost.run \
-d local.storage.nhost.run \
-m 'admin@nhost.io' \
--non-interactive \
--agree-tos \
--server https://acme-v02.api.letsencrypt.org/directory \
--logs-dir letsencrypt \
--config-dir letsencrypt \
--work-dir letsencrypt
cp letsencrypt/live/local.auth.nhost.run/fullchain.pem ssl/.ssl/local-fullchain.pem
cp letsencrypt/live/local.auth.nhost.run/privkey.pem ssl/.ssl/local-privkey.pem
certbot certonly \
-v \
--manual \
--preferred-challenges dns \
-d *.auth.local.nhost.run \
-d *.dashboard.local.nhost.run \
-d *.db.local.nhost.run \
-d *.functions.local.nhost.run \
-d *.graphql.local.nhost.run \
-d *.hasura.local.nhost.run \
-d *.mailhog.local.nhost.run \
-d *.storage.local.nhost.run \
-m 'admin@nhost.io' \
--agree-tos \
--server https://acme-v02.api.letsencrypt.org/directory \
--logs-dir letsencrypt \
--config-dir letsencrypt \
--work-dir letsencrypt
cp letsencrypt/live/auth.local.nhost.run/fullchain.pem ssl/.ssl/sub-fullchain.pem
cp letsencrypt/live/auth.local.nhost.run/privkey.pem ssl/.ssl/sub-privkey.pem
rm -rf letsencrypt

126
cli/clienv/clienv.go Normal file
View File

@@ -0,0 +1,126 @@
package clienv
import (
"context"
"fmt"
"io"
"os"
"regexp"
"strings"
"github.com/nhost/nhost/cli/nhostclient"
"github.com/nhost/nhost/cli/nhostclient/graphql"
"github.com/urfave/cli/v3"
)
func sanitizeName(name string) string {
re := regexp.MustCompile(`[^a-zA-Z0-9_-]`)
return strings.ToLower(re.ReplaceAllString(name, ""))
}
type CliEnv struct {
stdout io.Writer
stderr io.Writer
Path *PathStructure
authURL string
graphqlURL string
branch string
nhclient *nhostclient.Client
nhpublicclient *nhostclient.Client
projectName string
localSubdomain string
}
func New(
stdout io.Writer,
stderr io.Writer,
path *PathStructure,
authURL string,
graphqlURL string,
branch string,
projectName string,
localSubdomain string,
) *CliEnv {
return &CliEnv{
stdout: stdout,
stderr: stderr,
Path: path,
authURL: authURL,
graphqlURL: graphqlURL,
branch: branch,
nhclient: nil,
nhpublicclient: nil,
projectName: projectName,
localSubdomain: localSubdomain,
}
}
func FromCLI(cmd *cli.Command) *CliEnv {
cwd, err := os.Getwd()
if err != nil {
panic(err)
}
return &CliEnv{
stdout: cmd.Writer,
stderr: cmd.ErrWriter,
Path: NewPathStructure(
cwd,
cmd.String(flagRootFolder),
cmd.String(flagDotNhostFolder),
cmd.String(flagNhostFolder),
),
authURL: cmd.String(flagAuthURL),
graphqlURL: cmd.String(flagGraphqlURL),
branch: cmd.String(flagBranch),
projectName: sanitizeName(cmd.String(flagProjectName)),
nhclient: nil,
nhpublicclient: nil,
localSubdomain: cmd.String(flagLocalSubdomain),
}
}
func (ce *CliEnv) ProjectName() string {
return ce.projectName
}
func (ce *CliEnv) LocalSubdomain() string {
return ce.localSubdomain
}
func (ce *CliEnv) AuthURL() string {
return ce.authURL
}
func (ce *CliEnv) GraphqlURL() string {
return ce.graphqlURL
}
func (ce *CliEnv) Branch() string {
return ce.branch
}
func (ce *CliEnv) GetNhostClient(ctx context.Context) (*nhostclient.Client, error) {
if ce.nhclient == nil {
session, err := ce.LoadSession(ctx)
if err != nil {
return nil, fmt.Errorf("failed to load session: %w", err)
}
ce.nhclient = nhostclient.New(
ce.authURL,
ce.graphqlURL,
graphql.WithAccessToken(session.Session.AccessToken),
)
}
return ce.nhclient, nil
}
func (ce *CliEnv) GetNhostPublicClient() (*nhostclient.Client, error) {
if ce.nhpublicclient == nil {
ce.nhpublicclient = nhostclient.New(ce.authURL, ce.graphqlURL)
}
return ce.nhpublicclient, nil
}

101
cli/clienv/filesystem.go Normal file
View File

@@ -0,0 +1,101 @@
package clienv
import (
"os"
"path/filepath"
)
type PathStructure struct {
workingDir string
root string
dotNhostFolder string
nhostFolder string
}
func NewPathStructure(
workingDir, root, dotNhostFolder, nhostFolder string,
) *PathStructure {
return &PathStructure{
workingDir: workingDir,
root: root,
dotNhostFolder: dotNhostFolder,
nhostFolder: nhostFolder,
}
}
func (p PathStructure) WorkingDir() string {
return p.workingDir
}
func (p PathStructure) Root() string {
return p.root
}
func (p PathStructure) DotNhostFolder() string {
return p.dotNhostFolder
}
func (p PathStructure) NhostFolder() string {
return p.nhostFolder
}
func (p PathStructure) AuthFile() string {
return filepath.Join(PathStateHome(), "auth.json")
}
func (p PathStructure) NhostToml() string {
return filepath.Join(p.nhostFolder, "nhost.toml")
}
func (p PathStructure) OverlaysFolder() string {
return filepath.Join(p.nhostFolder, "overlays")
}
func (p PathStructure) Overlay(subdomain string) string {
return filepath.Join(p.OverlaysFolder(), subdomain+".json")
}
func (p PathStructure) Secrets() string {
return filepath.Join(p.root, ".secrets")
}
func (p PathStructure) HasuraConfig() string {
return filepath.Join(p.nhostFolder, "config.yaml")
}
func (p PathStructure) ProjectFile() string {
return filepath.Join(p.dotNhostFolder, "project.json")
}
func (p PathStructure) DockerCompose() string {
return filepath.Join(p.dotNhostFolder, "docker-compose.yaml")
}
func (p PathStructure) Functions() string {
return filepath.Join(p.root, "functions")
}
func PathExists(path string) bool {
_, err := os.Stat(path)
return !os.IsNotExist(err)
}
func PathStateHome() string {
var path string
if os.Getenv("XDG_STATE_HOME") != "" {
path = filepath.Join(os.Getenv("XDG_STATE_HOME"), "nhost")
} else {
path = filepath.Join(os.Getenv("HOME"), ".nhost", "state")
}
return path
}
func (p PathStructure) RunServiceOverlaysFolder(configPath string) string {
base := filepath.Dir(configPath)
return filepath.Join(base, "nhost", "overlays")
}
func (p PathStructure) RunServiceOverlay(configPath, subdomain string) string {
return filepath.Join(p.RunServiceOverlaysFolder(configPath), "run-"+subdomain+".json")
}

108
cli/clienv/flags.go Normal file
View File

@@ -0,0 +1,108 @@
package clienv
import (
"fmt"
"os"
"path/filepath"
"github.com/go-git/go-git/v5"
"github.com/urfave/cli/v3"
)
const (
flagAuthURL = "auth-url"
flagGraphqlURL = "graphql-url"
flagBranch = "branch"
flagProjectName = "project-name"
flagRootFolder = "root-folder"
flagNhostFolder = "nhost-folder"
flagDotNhostFolder = "dot-nhost-folder"
flagLocalSubdomain = "local-subdomain"
)
func getGitBranchName() string {
repo, err := git.PlainOpenWithOptions(".", &git.PlainOpenOptions{
DetectDotGit: true,
EnableDotGitCommonDir: false,
})
if err != nil {
return "nogit"
}
head, err := repo.Head()
if err != nil {
return "nogit"
}
return head.Name().Short()
}
func Flags() ([]cli.Flag, error) {
fullWorkingDir, err := os.Getwd()
if err != nil {
return nil, fmt.Errorf("failed to get working directory: %w", err)
}
branch := getGitBranchName()
workingDir := "."
dotNhostFolder := filepath.Join(workingDir, ".nhost")
nhostFolder := filepath.Join(workingDir, "nhost")
return []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagAuthURL,
Usage: "Nhost auth URL",
Sources: cli.EnvVars("NHOST_CLI_AUTH_URL"),
Value: "https://otsispdzcwxyqzbfntmj.auth.eu-central-1.nhost.run/v1",
Hidden: true,
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagGraphqlURL,
Usage: "Nhost GraphQL URL",
Sources: cli.EnvVars("NHOST_CLI_GRAPHQL_URL"),
Value: "https://otsispdzcwxyqzbfntmj.graphql.eu-central-1.nhost.run/v1",
Hidden: true,
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagBranch,
Usage: "Git branch name. If not set, it will be detected from the current git repository. This flag is used to dynamically create docker volumes for each branch. If you want to have a static volume name or if you are not using git, set this flag to a static value.", //nolint:lll
Sources: cli.EnvVars("BRANCH"),
Value: branch,
Hidden: false,
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagRootFolder,
Usage: "Root folder of project\n\t",
Sources: cli.EnvVars("NHOST_ROOT_FOLDER"),
Value: workingDir,
Category: "Project structure",
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagDotNhostFolder,
Usage: "Path to .nhost folder\n\t",
Sources: cli.EnvVars("NHOST_DOT_NHOST_FOLDER"),
Value: dotNhostFolder,
Category: "Project structure",
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagNhostFolder,
Usage: "Path to nhost folder\n\t",
Sources: cli.EnvVars("NHOST_NHOST_FOLDER"),
Value: nhostFolder,
Category: "Project structure",
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagProjectName,
Usage: "Project name",
Value: filepath.Base(fullWorkingDir),
Sources: cli.EnvVars("NHOST_PROJECT_NAME"),
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagLocalSubdomain,
Usage: "Local subdomain to reach the development environment",
Value: "local",
Sources: cli.EnvVars("NHOST_LOCAL_SUBDOMAIN"),
},
}, nil
}

91
cli/clienv/style.go Normal file
View File

@@ -0,0 +1,91 @@
//nolint:gochecknoglobals
package clienv
import (
"bufio"
"fmt"
"os"
"strings"
"syscall"
"github.com/charmbracelet/lipgloss"
"golang.org/x/term"
)
const (
ANSIColorWhite = lipgloss.Color("15")
ANSIColorCyan = lipgloss.Color("14")
ANSIColorPurple = lipgloss.Color("13")
ANSIColorBlue = lipgloss.Color("12")
ANSIColorYellow = lipgloss.Color("11")
ANSIColorGreen = lipgloss.Color("10")
ANSIColorRed = lipgloss.Color("9")
ANSIColorGray = lipgloss.Color("8")
)
const (
IconInfo = ""
IconWarn = "⚠"
)
var info = lipgloss.NewStyle().
Foreground(ANSIColorCyan).
Render
var warn = lipgloss.NewStyle().
Foreground(ANSIColorYellow).
Render
var promptMessage = lipgloss.NewStyle().
Foreground(ANSIColorCyan).
Bold(true).
Render
func (ce *CliEnv) Println(msg string, a ...any) {
if _, err := fmt.Fprintln(ce.stdout, fmt.Sprintf(msg, a...)); err != nil {
panic(err)
}
}
func (ce *CliEnv) Infoln(msg string, a ...any) {
if _, err := fmt.Fprintln(ce.stdout, info(fmt.Sprintf(msg, a...))); err != nil {
panic(err)
}
}
func (ce *CliEnv) Warnln(msg string, a ...any) {
if _, err := fmt.Fprintln(ce.stdout, warn(fmt.Sprintf(msg, a...))); err != nil {
panic(err)
}
}
func (ce *CliEnv) PromptMessage(msg string, a ...any) {
if _, err := fmt.Fprint(ce.stdout, promptMessage("- "+fmt.Sprintf(msg, a...))); err != nil {
panic(err)
}
}
func (ce *CliEnv) PromptInput(hide bool) (string, error) {
reader := bufio.NewReader(os.Stdin)
var (
response string
err error
)
if !hide {
response, err = reader.ReadString('\n')
if err != nil {
return "", fmt.Errorf("failed to read input: %w", err)
}
} else {
output, err := term.ReadPassword(syscall.Stdin)
if err != nil {
return "", fmt.Errorf("failed to read input: %w", err)
}
response = string(output)
}
return strings.TrimSpace(response), err
}

44
cli/clienv/table.go Normal file
View File

@@ -0,0 +1,44 @@
package clienv
import "github.com/charmbracelet/lipgloss"
type Column struct {
Header string
Rows []string
}
func Table(columns ...Column) string {
list := lipgloss.NewStyle().
Border(lipgloss.NormalBorder(), false, true, false, false).
BorderForeground(ANSIColorGray).
Padding(1)
// Width(30 + 1) //nolint:mnd
listHeader := lipgloss.NewStyle().
Foreground(ANSIColorPurple).
Render
listItem := lipgloss.NewStyle().Render
strs := make([]string, len(columns))
for i, col := range columns {
c := make([]string, len(col.Rows)+1)
c[0] = listHeader(col.Header)
for i, row := range col.Rows {
c[i+1] = listItem(row)
}
strs[i] = list.Render(
lipgloss.JoinVertical(
lipgloss.Left,
c...,
),
)
}
return lipgloss.JoinHorizontal(
lipgloss.Top,
strs...,
)
}

73
cli/clienv/wf_app_info.go Normal file
View File

@@ -0,0 +1,73 @@
package clienv
import (
"context"
"encoding/json"
"errors"
"fmt"
"os"
"github.com/nhost/nhost/cli/nhostclient/graphql"
)
func getRemoteAppInfo(
ctx context.Context,
ce *CliEnv,
subdomain string,
) (*graphql.AppSummaryFragment, error) {
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return nil, fmt.Errorf("failed to get nhost client: %w", err)
}
resp, err := cl.GetOrganizationsAndWorkspacesApps(
ctx,
)
if err != nil {
return nil, fmt.Errorf("failed to get workspaces: %w", err)
}
for _, workspace := range resp.Workspaces {
for _, app := range workspace.Apps {
if app.Subdomain == subdomain {
return app, nil
}
}
}
for _, organization := range resp.Organizations {
for _, app := range organization.Apps {
if app.Subdomain == subdomain {
return app, nil
}
}
}
return nil, fmt.Errorf("failed to find app with subdomain: %s", subdomain) //nolint:err113
}
func (ce *CliEnv) GetAppInfo(
ctx context.Context,
subdomain string,
) (*graphql.AppSummaryFragment, error) {
if subdomain != "" {
return getRemoteAppInfo(ctx, ce, subdomain)
}
var project *graphql.AppSummaryFragment
if err := UnmarshalFile(ce.Path.ProjectFile(), &project, json.Unmarshal); err != nil {
if errors.Is(err, os.ErrNotExist) {
project, err = ce.Link(ctx)
if err != nil {
return nil, err
}
} else {
ce.Warnln("Failed to find linked project: %v", err)
ce.Infoln("Please run `nhost link` to link a project first")
return nil, err
}
}
return project, nil
}

173
cli/clienv/wf_link.go Normal file
View File

@@ -0,0 +1,173 @@
package clienv
import (
"context"
"encoding/json"
"errors"
"fmt"
"os"
"strconv"
"github.com/nhost/nhost/cli/nhostclient/graphql"
)
func Printlist(ce *CliEnv, orgs *graphql.GetOrganizationsAndWorkspacesApps) error {
if len(orgs.GetWorkspaces())+len(orgs.GetOrganizations()) == 0 {
return errors.New("no apps found") //nolint:err113
}
num := Column{
Header: "#",
Rows: make([]string, 0),
}
subdomain := Column{
Header: "Subdomain",
Rows: make([]string, 0),
}
project := Column{
Header: "Project",
Rows: make([]string, 0),
}
organization := Column{
Header: "Organization/Workspace",
Rows: make([]string, 0),
}
region := Column{
Header: "Region",
Rows: make([]string, 0),
}
for _, org := range orgs.GetOrganizations() {
for _, app := range org.Apps {
num.Rows = append(num.Rows, strconv.Itoa(len(num.Rows)+1))
subdomain.Rows = append(subdomain.Rows, app.Subdomain)
project.Rows = append(project.Rows, app.Name)
organization.Rows = append(organization.Rows, org.Name)
region.Rows = append(region.Rows, app.Region.Name)
}
}
for _, ws := range orgs.GetWorkspaces() {
for _, app := range ws.Apps {
num.Rows = append(num.Rows, strconv.Itoa(len(num.Rows)+1))
subdomain.Rows = append(subdomain.Rows, app.Subdomain)
project.Rows = append(project.Rows, app.Name)
organization.Rows = append(organization.Rows, ws.Name+"*")
region.Rows = append(region.Rows, app.Region.Name)
}
}
ce.Println("%s", Table(num, subdomain, project, organization, region))
ce.Println("* Legacy Workspace")
return nil
}
func confirmApp(ce *CliEnv, app *graphql.AppSummaryFragment) error {
ce.PromptMessage("Enter project subdomain to confirm: ")
confirm, err := ce.PromptInput(false)
if err != nil {
return fmt.Errorf("failed to read input: %w", err)
}
if confirm != app.Subdomain {
return errors.New("input doesn't match the subdomain") //nolint:err113
}
return nil
}
func getApp(
orgs *graphql.GetOrganizationsAndWorkspacesApps,
idx string,
) (*graphql.AppSummaryFragment, error) {
x := 1
var app *graphql.AppSummaryFragment
OUTER:
for _, orgs := range orgs.GetOrganizations() {
for _, a := range orgs.GetApps() {
if strconv.Itoa(x) == idx {
a := a
app = a
break OUTER
}
x++
}
}
if app != nil {
return app, nil
}
OUTER2:
for _, ws := range orgs.GetWorkspaces() {
for _, a := range ws.GetApps() {
if strconv.Itoa(x) == idx {
a := a
app = a
break OUTER2
}
x++
}
}
if app == nil {
return nil, errors.New("invalid input") //nolint:err113
}
return app, nil
}
func (ce *CliEnv) Link(ctx context.Context) (*graphql.AppSummaryFragment, error) {
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return nil, fmt.Errorf("failed to get nhost client: %w", err)
}
orgs, err := cl.GetOrganizationsAndWorkspacesApps(ctx)
if err != nil {
return nil, fmt.Errorf("failed to get workspaces: %w", err)
}
if len(orgs.GetWorkspaces())+len(orgs.GetOrganizations()) == 0 {
return nil, errors.New("no apps found") //nolint:err113
}
if err := Printlist(ce, orgs); err != nil {
return nil, err
}
ce.PromptMessage("Select the workspace # to link: ")
idx, err := ce.PromptInput(false)
if err != nil {
return nil, fmt.Errorf("failed to read workspace: %w", err)
}
app, err := getApp(orgs, idx)
if err != nil {
return nil, err
}
if err := confirmApp(ce, app); err != nil {
return nil, err
}
if err := os.MkdirAll(ce.Path.DotNhostFolder(), 0o755); err != nil { //nolint:mnd
return nil, fmt.Errorf("failed to create .nhost folder: %w", err)
}
if err := MarshalFile(app, ce.Path.ProjectFile(), json.Marshal); err != nil {
return nil, fmt.Errorf("failed to marshal project information: %w", err)
}
return app, nil
}

296
cli/clienv/wf_login.go Normal file
View File

@@ -0,0 +1,296 @@
package clienv
import (
"context"
"crypto"
"crypto/tls"
"crypto/x509"
"encoding/json"
"encoding/pem"
"errors"
"fmt"
"log"
"net/http"
"os"
"os/exec"
"path/filepath"
"runtime"
"time"
"github.com/nhost/nhost/cli/nhostclient"
"github.com/nhost/nhost/cli/nhostclient/credentials"
"github.com/nhost/nhost/cli/ssl"
)
func savePAT(
ce *CliEnv,
session credentials.Credentials,
) error {
dir := filepath.Dir(ce.Path.AuthFile())
if !PathExists(dir) {
if err := os.MkdirAll(dir, 0o755); err != nil { //nolint:mnd
return fmt.Errorf("failed to create dir: %w", err)
}
}
if err := MarshalFile(session, ce.Path.AuthFile(), json.Marshal); err != nil {
return fmt.Errorf("failed to write PAT to file: %w", err)
}
return nil
}
func signinHandler(ch chan<- string) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
ch <- r.URL.Query().Get("refreshToken")
fmt.Fprintf(w, "You may now close this window.")
}
}
func openBrowser(ctx context.Context, url string) error {
var (
cmd string
args []string
)
switch runtime.GOOS {
case "darwin":
cmd = "open"
default: // "linux", "freebsd", "openbsd", "netbsd"
cmd = "xdg-open"
}
args = append(args, url)
if err := exec.CommandContext(ctx, cmd, args...).Start(); err != nil {
return fmt.Errorf("failed to open browser: %w", err)
}
return nil
}
func getTLSServer() (*http.Server, error) {
block, _ := pem.Decode(ssl.LocalKeyFile)
// Parse the PEM data to obtain the private key
privateKey, err := x509.ParsePKCS8PrivateKey(block.Bytes)
if err != nil {
return nil, fmt.Errorf("failed to parse private key: %w", err)
}
// Type assert the private key to crypto.PrivateKey
pk, ok := privateKey.(crypto.PrivateKey)
if !ok {
return nil, errors.New( //nolint:err113
"failed to type assert private key to crypto.PrivateKey",
)
}
block, _ = pem.Decode(ssl.LocalCertFile)
certificate, err := x509.ParseCertificate(block.Bytes)
if err != nil {
return nil, fmt.Errorf("failed to parse certificate: %w", err)
}
tlsConfig := &tls.Config{ //nolint:exhaustruct
MinVersion: tls.VersionTLS12,
CipherSuites: nil,
Certificates: []tls.Certificate{
{ //nolint:exhaustruct
Certificate: [][]byte{certificate.Raw},
PrivateKey: pk,
},
},
}
return &http.Server{ //nolint:exhaustruct
Addr: ":8099",
TLSConfig: tlsConfig,
ReadHeaderTimeout: time.Second * 10, //nolint:mnd
}, nil
}
func (ce *CliEnv) loginPAT(pat string) credentials.Credentials {
session := credentials.Credentials{
ID: "",
PersonalAccessToken: pat,
}
return session
}
func (ce *CliEnv) loginEmailPassword(
ctx context.Context,
email string,
password string,
) (credentials.Credentials, error) {
cl := nhostclient.New(ce.AuthURL(), ce.GraphqlURL())
var err error
if email == "" {
ce.PromptMessage("email: ")
email, err = ce.PromptInput(false)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to read email: %w", err)
}
}
if password == "" {
ce.PromptMessage("password: ")
password, err = ce.PromptInput(true)
ce.Println("")
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to read password: %w", err)
}
}
ce.Infoln("Authenticating")
loginResp, err := cl.Login(ctx, email, password)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to login: %w", err)
}
session, err := cl.CreatePAT(ctx, loginResp.Session.AccessToken)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to create PAT: %w", err)
}
ce.Infoln("Successfully logged in")
return session, nil
}
func (ce *CliEnv) loginGithub(ctx context.Context) (credentials.Credentials, error) {
refreshToken := make(chan string)
http.HandleFunc("/signin", signinHandler(refreshToken))
go func() {
server, err := getTLSServer()
if err != nil {
log.Fatal(err)
}
if err := server.ListenAndServeTLS("", ""); err != nil {
log.Fatal(err)
}
}()
signinPage := ce.AuthURL() + "/signin/provider/github/?redirectTo=https://local.dashboard.local.nhost.run:8099/signin"
ce.Infoln("Opening browser to sign-in")
if err := openBrowser(ctx, signinPage); err != nil {
return credentials.Credentials{}, err
}
ce.Infoln("Waiting for sign-in to complete")
refreshTokenValue := <-refreshToken
cl := nhostclient.New(ce.AuthURL(), ce.GraphqlURL())
refreshTokenResp, err := cl.RefreshToken(ctx, refreshTokenValue)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to get access token: %w", err)
}
session, err := cl.CreatePAT(ctx, refreshTokenResp.AccessToken)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to create PAT: %w", err)
}
ce.Infoln("Successfully logged in")
return session, nil
}
func (ce *CliEnv) loginMethod(ctx context.Context) (credentials.Credentials, error) {
ce.Infoln("Select authentication method:\n1. PAT\n2. Email/Password\n3. Github")
ce.PromptMessage("method: ")
method, err := ce.PromptInput(false)
if err != nil {
return credentials.Credentials{}, fmt.Errorf(
"failed to read authentication method: %w",
err,
)
}
var session credentials.Credentials
switch method {
case "1":
ce.PromptMessage("PAT: ")
pat, err := ce.PromptInput(true)
if err != nil {
return credentials.Credentials{}, fmt.Errorf("failed to read PAT: %w", err)
}
session = ce.loginPAT(pat)
case "2":
session, err = ce.loginEmailPassword(ctx, "", "")
case "3":
session, err = ce.loginGithub(ctx)
default:
return ce.loginMethod(ctx)
}
return session, err
}
func (ce *CliEnv) verifyEmail(
ctx context.Context,
email string,
) error {
ce.Infoln("Your email address is not verified")
cl := nhostclient.New(ce.AuthURL(), ce.GraphqlURL())
if err := cl.VerifyEmail(ctx, email); err != nil {
return fmt.Errorf("failed to send verification email: %w", err)
}
ce.Infoln("A verification email has been sent to %s", email)
ce.Infoln("Please verify your email address and try again")
return nil
}
func (ce *CliEnv) Login(
ctx context.Context,
pat string,
email string,
password string,
) (credentials.Credentials, error) {
var (
session credentials.Credentials
err error
)
switch {
case pat != "":
session = ce.loginPAT(pat)
case email != "" || password != "":
session, err = ce.loginEmailPassword(ctx, email, password)
default:
session, err = ce.loginMethod(ctx)
}
var reqErr *nhostclient.RequestError
if errors.As(err, &reqErr) && reqErr.ErrorCode == "unverified-user" {
return credentials.Credentials{}, ce.verifyEmail(ctx, email)
}
if err != nil {
return session, err
}
if err := savePAT(ce, session); err != nil {
return credentials.Credentials{}, err
}
return session, nil
}

52
cli/clienv/wf_marshal.go Normal file
View File

@@ -0,0 +1,52 @@
package clienv
import (
"errors"
"fmt"
"io"
"os"
)
var ErrNoContent = errors.New("no content")
func UnmarshalFile(filepath string, v any, f func([]byte, any) error) error {
r, err := os.OpenFile(filepath, os.O_RDONLY, 0o600) //nolint:mnd
if err != nil {
return fmt.Errorf("failed to open file: %w", err)
}
defer r.Close()
b, err := io.ReadAll(r)
if err != nil {
return fmt.Errorf("failed to read contents of reader: %w", err)
}
if len(b) == 0 {
return ErrNoContent
}
if err := f(b, v); err != nil {
return fmt.Errorf("failed to unmarshal object: %w", err)
}
return nil
}
func MarshalFile(v any, filepath string, fn func(any) ([]byte, error)) error {
f, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o600) //nolint:mnd
if err != nil {
return fmt.Errorf("failed to open file: %w", err)
}
defer f.Close()
b, err := fn(v)
if err != nil {
return fmt.Errorf("error marshalling object: %w", err)
}
if _, err := f.Write(b); err != nil {
return fmt.Errorf("error writing marshalled object: %w", err)
}
return nil
}

40
cli/clienv/wf_session.go Normal file
View File

@@ -0,0 +1,40 @@
package clienv
import (
"context"
"encoding/json"
"fmt"
"github.com/nhost/nhost/cli/nhostclient"
"github.com/nhost/nhost/cli/nhostclient/credentials"
)
func (ce *CliEnv) LoadSession(
ctx context.Context,
) (credentials.Session, error) {
var creds credentials.Credentials
if err := UnmarshalFile(ce.Path.AuthFile(), &creds, json.Unmarshal); err != nil {
creds, err = ce.Login(ctx, "", "", "")
if err != nil {
return credentials.Session{}, fmt.Errorf("failed to login: %w", err)
}
}
cl := nhostclient.New(ce.AuthURL(), ce.GraphqlURL())
session, err := cl.LoginPAT(ctx, creds.PersonalAccessToken)
if err != nil {
return credentials.Session{}, fmt.Errorf("failed to login: %w", err)
}
return session, nil
}
func (ce *CliEnv) Credentials() (credentials.Credentials, error) {
var creds credentials.Credentials
if err := UnmarshalFile(ce.Path.AuthFile(), &creds, json.Unmarshal); err != nil {
return credentials.Credentials{}, err
}
return creds, nil
}

106
cli/cmd/config/apply.go Normal file
View File

@@ -0,0 +1,106 @@
package config
import (
"context"
"encoding/json"
"errors"
"fmt"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/clienv"
"github.com/urfave/cli/v3"
)
func CommandApply() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "apply",
Aliases: []string{},
Usage: "Apply configuration to cloud project",
Action: commandApply,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagSubdomain,
Usage: "Subdomain of the Nhost project to apply configuration to. Defaults to linked project",
Required: true,
Sources: cli.EnvVars("NHOST_SUBDOMAIN"),
},
&cli.BoolFlag{ //nolint:exhaustruct
Name: flagYes,
Usage: "Skip confirmation",
Sources: cli.EnvVars("NHOST_YES"),
},
},
}
}
func commandApply(ctx context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
proj, err := ce.GetAppInfo(ctx, cmd.String(flagSubdomain))
if err != nil {
return cli.Exit(fmt.Sprintf("Failed to get app info: %v", err), 1)
}
ce.Infoln("Validating configuration...")
cfg, _, err := ValidateRemote(
ctx,
ce,
proj.GetSubdomain(),
proj.GetID(),
)
if err != nil {
return cli.Exit(err.Error(), 1)
}
if err := Apply(ctx, ce, proj.ID, cfg, cmd.Bool(flagYes)); err != nil {
return cli.Exit(err.Error(), 1)
}
return nil
}
func Apply(
ctx context.Context,
ce *clienv.CliEnv,
appID string,
cfg *model.ConfigConfig,
skipConfirmation bool,
) error {
if !skipConfirmation {
ce.PromptMessage(
"We are going to overwrite the project's configuration. Do you want to proceed? [y/N] ",
)
resp, err := ce.PromptInput(false)
if err != nil {
return fmt.Errorf("failed to read input: %w", err)
}
if resp != "y" && resp != "Y" {
return errors.New("aborting") //nolint:err113
}
}
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return fmt.Errorf("failed to get nhost client: %w", err)
}
b, err := json.Marshal(cfg)
if err != nil {
return fmt.Errorf("failed to marshal config: %w", err)
}
if _, err := cl.ReplaceConfigRawJSON(
ctx,
appID,
string(b),
); err != nil {
return fmt.Errorf("failed to apply config: %w", err)
}
ce.Infoln("Configuration applied successfully!")
return nil
}

22
cli/cmd/config/config.go Normal file
View File

@@ -0,0 +1,22 @@
package config
import "github.com/urfave/cli/v3"
const flagSubdomain = "subdomain"
func Command() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "config",
Aliases: []string{},
Usage: "Perform config operations",
Commands: []*cli.Command{
CommandDefault(),
CommandExample(),
CommandApply(),
CommandPull(),
CommandShow(),
CommandValidate(),
CommandEdit(),
},
}
}

59
cli/cmd/config/default.go Normal file
View File

@@ -0,0 +1,59 @@
package config
import (
"context"
"fmt"
"os"
"github.com/nhost/nhost/cli/clienv"
"github.com/nhost/nhost/cli/project"
"github.com/nhost/nhost/cli/project/env"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
)
func CommandDefault() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "default",
Aliases: []string{},
Usage: "Create default configuration and secrets",
Action: commandDefault,
Flags: []cli.Flag{},
}
}
func commandDefault(_ context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
if err := os.MkdirAll(ce.Path.NhostFolder(), 0o755); err != nil { //nolint:mnd
return fmt.Errorf("failed to create nhost folder: %w", err)
}
ce.Infoln("Initializing Nhost project")
if err := InitConfigAndSecrets(ce); err != nil {
return fmt.Errorf("failed to initialize project: %w", err)
}
ce.Infoln("Successfully generated default configuration and secrets")
return nil
}
func InitConfigAndSecrets(ce *clienv.CliEnv) error {
config, err := project.DefaultConfig()
if err != nil {
return fmt.Errorf("failed to create default config: %w", err)
}
if err := clienv.MarshalFile(config, ce.Path.NhostToml(), toml.Marshal); err != nil {
return fmt.Errorf("failed to save config: %w", err)
}
secrets := project.DefaultSecrets()
if err := clienv.MarshalFile(secrets, ce.Path.Secrets(), env.Marshal); err != nil {
return fmt.Errorf("failed to save secrets: %w", err)
}
return nil
}

182
cli/cmd/config/edit.go Normal file
View File

@@ -0,0 +1,182 @@
package config
import (
"context"
"encoding/json"
"fmt"
"io"
"os"
"os/exec"
"path/filepath"
"sort"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/clienv"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
"github.com/wI2L/jsondiff"
)
const (
flagEditor = "editor"
)
func CommandEdit() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "edit",
Aliases: []string{},
Usage: "Edit base configuration or an overlay",
Action: edit,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagSubdomain,
Usage: "If specified, edit this subdomain's overlay, otherwise edit base configuation",
Sources: cli.EnvVars("NHOST_SUBDOMAIN"),
},
&cli.StringFlag{ //nolint:exhaustruct
Name: flagEditor,
Usage: "Editor to use",
Value: "vim",
Sources: cli.EnvVars("EDITOR"),
},
},
}
}
func EditFile(ctx context.Context, editor, filepath string) error {
cmd := exec.CommandContext(
ctx,
editor,
filepath,
)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
if err := cmd.Run(); err != nil {
return fmt.Errorf("failed to open editor: %w", err)
}
return nil
}
func CopyConfig[T any](src, dst, overlayPath string) error {
var cfg *T
if err := clienv.UnmarshalFile(src, &cfg, toml.Unmarshal); err != nil {
return fmt.Errorf("failed to parse config: %w", err)
}
var err error
if clienv.PathExists(overlayPath) {
cfg, err = ApplyJSONPatches(*cfg, overlayPath)
if err != nil {
return fmt.Errorf("failed to apply json patches: %w", err)
}
}
if err := clienv.MarshalFile(cfg, dst, toml.Marshal); err != nil {
return fmt.Errorf("failed to save temporary file: %w", err)
}
return nil
}
func readFile(filepath string) (any, error) {
f, err := os.Open(filepath)
if err != nil {
return nil, fmt.Errorf("failed to open file: %w", err)
}
defer f.Close()
b, err := io.ReadAll(f)
if err != nil {
return nil, fmt.Errorf("failed to read file: %w", err)
}
var v any
if err := toml.Unmarshal(b, &v); err != nil {
return nil, fmt.Errorf("failed to unmarshal toml: %w", err)
}
return v, nil
}
func GenerateJSONPatch(origfilepath, newfilepath, dst string) error {
origo, err := readFile(origfilepath)
if err != nil {
return fmt.Errorf("failed to convert original toml to json: %w", err)
}
newo, err := readFile(newfilepath)
if err != nil {
return fmt.Errorf("failed to convert new toml to json: %w", err)
}
patches, err := jsondiff.Compare(origo, newo)
if err != nil {
return fmt.Errorf("failed to generate json patch: %w", err)
}
dstf, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0o644) //nolint:mnd
if err != nil {
return fmt.Errorf("failed to open destination file: %w", err)
}
defer dstf.Close()
sort.Slice(patches, func(i, j int) bool {
return patches[i].Path < patches[j].Path
})
dstb, err := json.MarshalIndent(patches, "", " ")
if err != nil {
return fmt.Errorf("failed to prettify json: %w", err)
}
if _, err := dstf.Write(dstb); err != nil {
return fmt.Errorf("failed to write to destination file: %w", err)
}
return nil
}
func edit(ctx context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
if cmd.String(flagSubdomain) == "" {
if err := EditFile(ctx, cmd.String(flagEditor), ce.Path.NhostToml()); err != nil {
return fmt.Errorf("failed to edit config: %w", err)
}
return nil
}
if err := os.MkdirAll(ce.Path.OverlaysFolder(), 0o755); err != nil { //nolint:mnd
return fmt.Errorf("failed to create json patches directory: %w", err)
}
tmpdir, err := os.MkdirTemp(os.TempDir(), "nhost-jsonpatch")
if err != nil {
return fmt.Errorf("failed to create temporary directory: %w", err)
}
defer os.RemoveAll(tmpdir)
tmpfileName := filepath.Join(tmpdir, "nhost.toml")
if err := CopyConfig[model.ConfigConfig](
ce.Path.NhostToml(), tmpfileName, ce.Path.Overlay(cmd.String(flagSubdomain)),
); err != nil {
return fmt.Errorf("failed to copy config: %w", err)
}
if err := EditFile(ctx, cmd.String(flagEditor), tmpfileName); err != nil {
return fmt.Errorf("failed to edit config: %w", err)
}
if err := GenerateJSONPatch(
ce.Path.NhostToml(), tmpfileName, ce.Path.Overlay(cmd.String(flagSubdomain)),
); err != nil {
return fmt.Errorf("failed to generate json patch: %w", err)
}
return nil
}

555
cli/cmd/config/example.go Normal file
View File

@@ -0,0 +1,555 @@
package config
import (
"context"
"fmt"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/be/services/mimir/schema"
"github.com/nhost/nhost/cli/clienv"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
)
func CommandExample() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "example",
Aliases: []string{},
Usage: "Shows an example config file",
Action: commandExample,
Flags: []cli.Flag{},
}
}
func ptr[T any](v T) *T { return &v }
func commandExample(_ context.Context, cmd *cli.Command) error { //nolint:funlen,maintidx
ce := clienv.FromCLI(cmd)
//nolint:mnd
cfg := model.ConfigConfig{
Global: &model.ConfigGlobal{
Environment: []*model.ConfigGlobalEnvironmentVariable{
{
Name: "NAME",
Value: "value",
},
},
},
Ai: &model.ConfigAI{
Version: ptr("0.3.0"),
Resources: &model.ConfigAIResources{
Compute: &model.ConfigComputeResources{
Cpu: 256,
Memory: 512,
},
},
Openai: &model.ConfigAIOpenai{
Organization: ptr("org-id"),
ApiKey: "opeanai-api-key",
},
AutoEmbeddings: &model.ConfigAIAutoEmbeddings{
SynchPeriodMinutes: ptr(uint32(10)),
},
WebhookSecret: "this-is-a-webhook-secret",
},
Graphql: &model.ConfigGraphql{
Security: &model.ConfigGraphqlSecurity{
ForbidAminSecret: ptr(true),
MaxDepthQueries: ptr(uint(4)),
},
},
Hasura: &model.ConfigHasura{
Version: new(string),
JwtSecrets: []*model.ConfigJWTSecret{
{
Type: ptr("HS256"),
Key: ptr("secret"),
},
},
AdminSecret: "adminsecret",
WebhookSecret: "webhooksecret",
Settings: &model.ConfigHasuraSettings{
CorsDomain: []string{"*"},
DevMode: ptr(false),
EnableAllowList: ptr(true),
EnableConsole: ptr(true),
EnableRemoteSchemaPermissions: ptr(true),
EnabledAPIs: []string{
"metadata",
},
InferFunctionPermissions: ptr(true),
LiveQueriesMultiplexedRefetchInterval: ptr(uint32(1000)),
StringifyNumericTypes: ptr(false),
},
AuthHook: &model.ConfigHasuraAuthHook{
Url: "https://customauth.example.com/hook",
Mode: ptr("POST"),
SendRequestBody: ptr(true),
},
Logs: &model.ConfigHasuraLogs{
Level: ptr("warn"),
},
Events: &model.ConfigHasuraEvents{
HttpPoolSize: ptr(uint32(10)),
},
Resources: &model.ConfigResources{
Compute: &model.ConfigResourcesCompute{
Cpu: 500,
Memory: 1024,
},
Replicas: ptr(uint8(1)),
Networking: &model.ConfigNetworking{
Ingresses: []*model.ConfigIngress{
{
Fqdn: []string{"hasura.example.com"},
Tls: &model.ConfigIngressTls{
ClientCA: ptr(
"---BEGIN CERTIFICATE---\n...\n---END CERTIFICATE---",
),
},
},
},
},
Autoscaler: nil,
},
RateLimit: &model.ConfigRateLimit{
Limit: 100,
Interval: "15m",
},
},
Functions: &model.ConfigFunctions{
Node: &model.ConfigFunctionsNode{
Version: ptr(int(22)),
},
Resources: &model.ConfigFunctionsResources{
Networking: &model.ConfigNetworking{
Ingresses: []*model.ConfigIngress{
{
Fqdn: []string{"hasura.example.com"},
Tls: &model.ConfigIngressTls{
ClientCA: ptr(
"---BEGIN CERTIFICATE---\n...\n---END CERTIFICATE---",
),
},
},
},
},
},
RateLimit: &model.ConfigRateLimit{
Limit: 100,
Interval: "15m",
},
},
Auth: &model.ConfigAuth{
Version: ptr("0.25.0"),
Misc: &model.ConfigAuthMisc{
ConcealErrors: ptr(false),
},
ElevatedPrivileges: &model.ConfigAuthElevatedPrivileges{
Mode: ptr("required"),
},
Resources: &model.ConfigResources{
Compute: &model.ConfigResourcesCompute{
Cpu: 250,
Memory: 512,
},
Replicas: ptr(uint8(1)),
Networking: &model.ConfigNetworking{
Ingresses: []*model.ConfigIngress{
{
Fqdn: []string{"auth.example.com"},
Tls: &model.ConfigIngressTls{
ClientCA: ptr(
"---BEGIN CERTIFICATE---\n...\n---END CERTIFICATE---",
),
},
},
},
},
Autoscaler: nil,
},
Redirections: &model.ConfigAuthRedirections{
ClientUrl: ptr("https://example.com"),
AllowedUrls: []string{
"https://example.com",
},
},
SignUp: &model.ConfigAuthSignUp{
Enabled: ptr(true),
DisableNewUsers: ptr(false),
Turnstile: &model.ConfigAuthSignUpTurnstile{
SecretKey: "turnstileSecretKey",
},
},
User: &model.ConfigAuthUser{
Roles: &model.ConfigAuthUserRoles{
Default: ptr("user"),
Allowed: []string{"user", "me"},
},
Locale: &model.ConfigAuthUserLocale{
Default: ptr("en"),
Allowed: []string{"en"},
},
Gravatar: &model.ConfigAuthUserGravatar{
Enabled: ptr(true),
Default: ptr("identicon"),
Rating: ptr("g"),
},
Email: &model.ConfigAuthUserEmail{
Allowed: []string{"asd@example.org"},
Blocked: []string{"asd@example.com"},
},
EmailDomains: &model.ConfigAuthUserEmailDomains{
Allowed: []string{"example.com"},
Blocked: []string{"example.org"},
},
},
Session: &model.ConfigAuthSession{
AccessToken: &model.ConfigAuthSessionAccessToken{
ExpiresIn: ptr(uint32(3600)),
CustomClaims: []*model.ConfigAuthsessionaccessTokenCustomClaims{
{
Key: "key",
Value: "value",
Default: ptr("default-value"),
},
},
},
RefreshToken: &model.ConfigAuthSessionRefreshToken{
ExpiresIn: ptr(uint32(3600)),
},
},
Method: &model.ConfigAuthMethod{
Anonymous: &model.ConfigAuthMethodAnonymous{
Enabled: ptr(false),
},
Otp: &model.ConfigAuthMethodOtp{
Email: &model.ConfigAuthMethodOtpEmail{
Enabled: ptr(true),
},
},
EmailPasswordless: &model.ConfigAuthMethodEmailPasswordless{
Enabled: ptr(true),
},
EmailPassword: &model.ConfigAuthMethodEmailPassword{
HibpEnabled: ptr(true),
EmailVerificationRequired: ptr(true),
PasswordMinLength: ptr(uint8(12)),
},
SmsPasswordless: &model.ConfigAuthMethodSmsPasswordless{
Enabled: ptr(true),
},
Oauth: &model.ConfigAuthMethodOauth{
Apple: &model.ConfigAuthMethodOauthApple{
Enabled: ptr(true),
ClientId: ptr("clientid"),
KeyId: ptr("keyid"),
TeamId: ptr("teamid"),
Scope: []string{"scope"},
PrivateKey: ptr("privatekey"),
Audience: ptr("audience"),
},
Azuread: &model.ConfigAuthMethodOauthAzuread{
Tenant: ptr("tenant"),
Enabled: ptr(true),
ClientId: ptr("clientid"),
ClientSecret: ptr("clientsecret"),
},
Bitbucket: &model.ConfigStandardOauthProvider{
Enabled: ptr(true),
ClientId: ptr("clientid"),
ClientSecret: ptr("clientsecret"),
},
Discord: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Entraid: &model.ConfigAuthMethodOauthEntraid{
ClientId: ptr("entraidClientId"),
ClientSecret: ptr("entraidClientSecret"),
Enabled: ptr(true),
Tenant: ptr("entraidTenant"),
},
Facebook: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Github: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Gitlab: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Google: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Linkedin: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Spotify: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Strava: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Twitch: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Twitter: &model.ConfigAuthMethodOauthTwitter{
Enabled: ptr(true),
ConsumerKey: ptr("consumerkey"),
ConsumerSecret: ptr("consumersecret"),
},
Windowslive: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(true),
ClientId: ptr("clientid"),
Scope: []string{"scope"},
ClientSecret: ptr("clientsecret"),
Audience: ptr("audience"),
},
Workos: &model.ConfigAuthMethodOauthWorkos{
Connection: ptr("connection"),
Enabled: ptr(true),
ClientId: ptr("clientid"),
Organization: ptr("organization"),
ClientSecret: ptr("clientsecret"),
},
},
Webauthn: &model.ConfigAuthMethodWebauthn{
Enabled: ptr(true),
RelyingParty: &model.ConfigAuthMethodWebauthnRelyingParty{
Id: ptr("example.com"),
Name: ptr("name"),
Origins: []string{
"https://example.com",
},
},
Attestation: &model.ConfigAuthMethodWebauthnAttestation{
Timeout: ptr(uint32(60000)),
},
},
},
Totp: &model.ConfigAuthTotp{
Enabled: ptr(true),
Issuer: ptr("issuer"),
},
RateLimit: &model.ConfigAuthRateLimit{
Emails: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
Sms: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
BruteForce: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
Signups: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
Global: &model.ConfigRateLimit{
Limit: 100,
Interval: "15m",
},
},
},
Postgres: &model.ConfigPostgres{
Version: ptr("14-20230312-1"),
Resources: &model.ConfigPostgresResources{
Compute: &model.ConfigResourcesCompute{
Cpu: 2000,
Memory: 4096,
},
EnablePublicAccess: ptr(true),
Storage: &model.ConfigPostgresResourcesStorage{
Capacity: 20,
},
Replicas: nil,
},
Settings: &model.ConfigPostgresSettings{
Jit: ptr("off"),
MaxConnections: ptr(int32(100)),
SharedBuffers: ptr("128MB"),
EffectiveCacheSize: ptr("4GB"),
MaintenanceWorkMem: ptr("64MB"),
CheckpointCompletionTarget: ptr(float64(0.9)),
WalBuffers: ptr("-1"),
DefaultStatisticsTarget: ptr(int32(100)),
RandomPageCost: ptr(float64(4)),
EffectiveIOConcurrency: ptr(int32(1)),
WorkMem: ptr("4MB"),
HugePages: ptr("try"),
MinWalSize: ptr("80MB"),
MaxWalSize: ptr("1GB"),
MaxWorkerProcesses: ptr(int32(8)),
MaxParallelWorkersPerGather: ptr(int32(2)),
MaxParallelWorkers: ptr(int32(8)),
MaxParallelMaintenanceWorkers: ptr(int32(2)),
WalLevel: ptr("replica"),
MaxWalSenders: ptr(int32(10)),
MaxReplicationSlots: ptr(int32(10)),
ArchiveTimeout: ptr(int32(300)),
TrackIoTiming: ptr("off"),
},
Pitr: &model.ConfigPostgresPitr{
Retention: ptr(uint8(7)),
},
},
Provider: &model.ConfigProvider{
Smtp: &model.ConfigSmtp{
User: "smtpUser",
Password: "smtpPassword",
Sender: "smtpSender",
Host: "smtpHost",
Port: 587, //nolint:mnd
Secure: true,
Method: "LOGIN",
},
Sms: &model.ConfigSms{
Provider: ptr("twilio"),
AccountSid: "twilioAccountSid",
AuthToken: "twilioAuthToken",
MessagingServiceId: "twilioMessagingServiceId",
},
},
Storage: &model.ConfigStorage{
Version: ptr("0.3.5"),
Antivirus: &model.ConfigStorageAntivirus{
Server: ptr("tcp://run-clamav:3310"),
},
Resources: &model.ConfigResources{
Compute: &model.ConfigResourcesCompute{
Cpu: 500,
Memory: 1024,
},
Networking: nil,
Replicas: ptr(uint8(1)),
Autoscaler: nil,
},
RateLimit: &model.ConfigRateLimit{
Limit: 100,
Interval: "15m",
},
},
Observability: &model.ConfigObservability{
Grafana: &model.ConfigGrafana{
AdminPassword: "grafanaAdminPassword",
Smtp: &model.ConfigGrafanaSmtp{
Host: "localhost",
Port: 25,
Sender: "admin@localhost",
User: "smtpUser",
Password: "smtpPassword",
},
Alerting: &model.ConfigGrafanaAlerting{
Enabled: ptr(true),
},
Contacts: &model.ConfigGrafanaContacts{
Emails: []string{
"engineering@acme.com",
},
Pagerduty: []*model.ConfigGrafanacontactsPagerduty{
{
IntegrationKey: "integration-key",
Severity: "critical",
Class: "infra",
Component: "backend",
Group: "group",
},
},
Discord: []*model.ConfigGrafanacontactsDiscord{
{
Url: "https://discord.com/api/webhooks/...",
AvatarUrl: "https://discord.com/api/avatar/...",
},
},
Slack: []*model.ConfigGrafanacontactsSlack{
{
Recipient: "recipient",
Token: "token",
Username: "username",
IconEmoji: "danger",
IconURL: "https://...",
MentionUsers: []string{
"user1", "user2",
},
MentionGroups: []string{
"group1", "group2",
},
MentionChannel: "channel",
Url: "https://slack.com/api/webhooks/...",
EndpointURL: "https://slack.com/api/endpoint/...",
},
},
Webhook: []*model.ConfigGrafanacontactsWebhook{
{
Url: "https://webhook.example.com",
HttpMethod: "POST",
Username: "user",
Password: "password",
AuthorizationScheme: "Bearer",
AuthorizationCredentials: "token",
MaxAlerts: 10,
},
},
},
},
},
}
b, err := toml.Marshal(cfg)
if err != nil {
return fmt.Errorf("failed to marshal config: %w", err)
}
sch, err := schema.New()
if err != nil {
return fmt.Errorf("failed to create schema: %w", err)
}
if err := sch.ValidateConfig(cfg); err != nil {
return fmt.Errorf("failed to validate config: %w", err)
}
ce.Println("%s", b)
return nil
}

205
cli/cmd/config/pull.go Normal file
View File

@@ -0,0 +1,205 @@
package config
import (
"context"
"encoding/json"
"errors"
"fmt"
"os"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/clienv"
"github.com/nhost/nhost/cli/nhostclient/graphql"
"github.com/nhost/nhost/cli/project/env"
"github.com/nhost/nhost/cli/system"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
)
const (
DefaultHasuraGraphqlAdminSecret = "nhost-admin-secret" //nolint:gosec
DefaultGraphqlJWTSecret = "0f987876650b4a085e64594fae9219e7781b17506bec02489ad061fba8cb22db"
DefaultNhostWebhookSecret = "nhost-webhook-secret" //nolint:gosec
)
const (
flagYes = "yes"
)
func CommandPull() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "pull",
Aliases: []string{},
Usage: "Get cloud configuration",
Action: commandPull,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagSubdomain,
Usage: "Pull this subdomain's configuration. Defaults to linked project",
Sources: cli.EnvVars("NHOST_SUBDOMAIN"),
},
&cli.BoolFlag{ //nolint:exhaustruct
Name: flagYes,
Usage: "Skip confirmation",
Sources: cli.EnvVars("NHOST_YES"),
},
},
}
}
func commandPull(ctx context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
skipConfirmation := cmd.Bool(flagYes)
if !skipConfirmation {
if err := verifyFile(ce, ce.Path.NhostToml()); err != nil {
return err
}
}
writeSecrets := true
if !skipConfirmation {
if err := verifyFile(ce, ce.Path.Secrets()); err != nil {
writeSecrets = false
}
}
proj, err := ce.GetAppInfo(ctx, cmd.String(flagSubdomain))
if err != nil {
return fmt.Errorf("failed to get app info: %w", err)
}
_, err = Pull(ctx, ce, proj, writeSecrets)
return err
}
func verifyFile(ce *clienv.CliEnv, name string) error {
if clienv.PathExists(name) {
ce.PromptMessage("%s",
name+" already exists. Do you want to overwrite it? [y/N] ",
)
resp, err := ce.PromptInput(false)
if err != nil {
return fmt.Errorf("failed to read input: %w", err)
}
if resp != "y" && resp != "Y" {
return errors.New("aborting") //nolint:err113
}
}
return nil
}
func respToSecrets(env []*graphql.GetSecrets_AppSecrets, anonymize bool) model.Secrets {
secrets := make(model.Secrets, len(env))
for i, s := range env {
if anonymize {
switch s.Name {
case "HASURA_GRAPHQL_ADMIN_SECRET":
s.Value = DefaultHasuraGraphqlAdminSecret
case "HASURA_GRAPHQL_JWT_SECRET":
s.Value = DefaultGraphqlJWTSecret
case "NHOST_WEBHOOK_SECRET":
s.Value = DefaultNhostWebhookSecret
default:
s.Value = "FIXME"
}
}
secrets[i] = &model.ConfigEnvironmentVariable{
Name: s.Name,
Value: s.Value,
}
}
return secrets
}
func pullSecrets(
ctx context.Context,
ce *clienv.CliEnv,
proj *graphql.AppSummaryFragment,
) error {
ce.Infoln("Getting secrets list from Nhost...")
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return fmt.Errorf("failed to get nhost client: %w", err)
}
resp, err := cl.GetSecrets(
ctx,
proj.ID,
)
if err != nil {
return fmt.Errorf("failed to get secrets: %w", err)
}
secrets := respToSecrets(resp.GetAppSecrets(), true)
if err := clienv.MarshalFile(&secrets, ce.Path.Secrets(), env.Marshal); err != nil {
return fmt.Errorf("failed to save nhost.toml: %w", err)
}
ce.Infoln("Adding .secrets to .gitignore...")
if err := system.AddToGitignore("\n.secrets\n"); err != nil {
return fmt.Errorf("failed to add .secrets to .gitignore: %w", err)
}
return nil
}
func Pull(
ctx context.Context,
ce *clienv.CliEnv,
proj *graphql.AppSummaryFragment,
writeSecrts bool,
) (*model.ConfigConfig, error) {
ce.Infoln("Pulling config from Nhost...")
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return nil, fmt.Errorf("failed to get nhost client: %w", err)
}
cfg, err := cl.GetConfigRawJSON(
ctx,
proj.ID,
)
if err != nil {
return nil, fmt.Errorf("failed to get config: %w", err)
}
var v model.ConfigConfig
if err := json.Unmarshal([]byte(cfg.ConfigRawJSON), &v); err != nil {
return nil, fmt.Errorf("failed to unmarshal config: %w", err)
}
if err := os.MkdirAll(ce.Path.NhostFolder(), 0o755); err != nil { //nolint:mnd
return nil, fmt.Errorf("failed to create nhost directory: %w", err)
}
if err := clienv.MarshalFile(v, ce.Path.NhostToml(), toml.Marshal); err != nil {
return nil, fmt.Errorf("failed to save nhost.toml: %w", err)
}
if writeSecrts {
if err := pullSecrets(ctx, ce, proj); err != nil {
return nil, err
}
}
ce.Infoln("Success!")
ce.Warnln(
"- Review `nhost/nhost.toml` and make sure there are no secrets before you commit it to git.",
)
ce.Warnln("- Review `.secrets` file and set your development secrets")
ce.Warnln("- Review `.secrets` was added to .gitignore")
return &v, nil
}

55
cli/cmd/config/show.go Normal file
View File

@@ -0,0 +1,55 @@
package config
import (
"context"
"fmt"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/clienv"
"github.com/nhost/nhost/cli/project/env"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
)
func CommandShow() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "show",
Aliases: []string{},
Usage: "Shows configuration after resolving secrets",
Description: "Note that this command will always use the local secrets, even if you specify subdomain",
Action: commandShow,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagSubdomain,
Usage: "Show this subdomain's rendered configuration. Defaults to base configuration",
Sources: cli.EnvVars("NHOST_SUBDOMAIN"),
},
},
}
}
func commandShow(_ context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
var secrets model.Secrets
if err := clienv.UnmarshalFile(ce.Path.Secrets(), &secrets, env.Unmarshal); err != nil {
return fmt.Errorf(
"failed to parse secrets, make sure secret values are between quotes: %w",
err,
)
}
cfg, err := Validate(ce, cmd.String(flagSubdomain), secrets)
if err != nil {
return err
}
b, err := toml.Marshal(cfg)
if err != nil {
return fmt.Errorf("error marshalling config: %w", err)
}
ce.Println("%s", b)
return nil
}

View File

@@ -0,0 +1,8 @@
HASURA_GRAPHQL_ADMIN_SECRET='nhost-admin-secret'
HASURA_GRAPHQL_JWT_SECRET='0f987876650b4a085e64594fae9219e7781b17506bec02489ad061fba8cb22db'
NHOST_WEBHOOK_SECRET='nhost-webhook-secret'
GRAFANA_ADMIN_PASSWORD='grafana-admin-password'
APPLE_CLIENT_ID='clientID'
APPLE_KEY_ID='keyID'
APPLE_TEAM_ID='teamID'
APPLE_PRIVATE_KEY='privateKey'

View File

@@ -0,0 +1,155 @@
[global]
[[global.environment]]
name = 'ENVIRONMENT'
value = 'production'
[hasura]
version = 'v2.24.1-ce'
adminSecret = '{{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}'
webhookSecret = '{{ secrets.NHOST_WEBHOOK_SECRET }}'
[[hasura.jwtSecrets]]
type = 'HS256'
key = '{{ secrets.HASURA_GRAPHQL_JWT_SECRET }}'
[hasura.settings]
corsDomain = ['*']
devMode = true
enableAllowList = false
enableConsole = true
enableRemoteSchemaPermissions = false
enabledAPIs = ['metadata', 'graphql', 'pgdump', 'config']
[hasura.logs]
level = 'warn'
[hasura.events]
httpPoolSize = 100
[functions]
[functions.node]
version = 22
[auth]
version = '0.20.0'
[auth.redirections]
clientUrl = 'https://my.app.com'
[auth.signUp]
enabled = true
[auth.user]
[auth.user.roles]
default = 'user'
allowed = ['user', 'me']
[auth.user.locale]
default = 'en'
allowed = ['en']
[auth.user.gravatar]
enabled = true
default = 'blank'
rating = 'g'
[auth.user.email]
[auth.user.emailDomains]
[auth.session]
[auth.session.accessToken]
expiresIn = 900
[auth.session.refreshToken]
expiresIn = 2592000
[auth.method]
[auth.method.anonymous]
enabled = false
[auth.method.emailPasswordless]
enabled = false
[auth.method.emailPassword]
hibpEnabled = false
emailVerificationRequired = true
passwordMinLength = 9
[auth.method.smsPasswordless]
enabled = false
[auth.method.oauth]
[auth.method.oauth.apple]
enabled = true
clientId = '{{ secrets.APPLE_CLIENT_ID }}'
keyId = '{{ secrets.APPLE_KEY_ID }}'
teamId = '{{ secrets.APPLE_TEAM_ID }}'
privateKey = '{{ secrets.APPLE_PRIVATE_KEY }}'
[auth.method.oauth.azuread]
tenant = 'common'
enabled = false
[auth.method.oauth.bitbucket]
enabled = false
[auth.method.oauth.discord]
enabled = false
[auth.method.oauth.facebook]
enabled = false
[auth.method.oauth.github]
enabled = false
[auth.method.oauth.gitlab]
enabled = false
[auth.method.oauth.google]
enabled = false
[auth.method.oauth.linkedin]
enabled = false
[auth.method.oauth.spotify]
enabled = false
[auth.method.oauth.strava]
enabled = false
[auth.method.oauth.twitch]
enabled = false
[auth.method.oauth.twitter]
enabled = false
[auth.method.oauth.windowslive]
enabled = false
[auth.method.oauth.workos]
enabled = false
[auth.method.webauthn]
enabled = false
[auth.method.webauthn.attestation]
timeout = 60000
[auth.totp]
enabled = false
[postgres]
version = '14.6-20230406-2'
[postgres.resources.storage]
capacity = 1
[provider]
[storage]
version = '0.3.4'
[observability]
[observability.grafana]
adminPassword = '{{ secrets.GRAFANA_ADMIN_PASSWORD }}'

View File

@@ -0,0 +1,32 @@
[
{
"op": "replace",
"path": "/hasura/version",
"value": "v2.25.0-ce"
},
{
"op": "replace",
"path": "/global/environment/0",
"value": {
"name": "ENVIRONMENT",
"value": "development"
}
},
{
"op": "add",
"path": "/global/environment/-",
"value": {
"name": "FUNCTION_LOG_LEVEL",
"value": "debug"
}
},
{
"op": "replace",
"path": "/auth/redirections/clientUrl",
"value": "http://localhost:3000"
},
{
"op": "remove",
"path": "/auth/method/oauth/apple"
}
]

200
cli/cmd/config/validate.go Normal file
View File

@@ -0,0 +1,200 @@
package config
import (
"context"
"encoding/json"
"fmt"
"io"
"os"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/be/services/mimir/schema"
"github.com/nhost/be/services/mimir/schema/appconfig"
"github.com/nhost/nhost/cli/clienv"
"github.com/nhost/nhost/cli/project/env"
"github.com/pelletier/go-toml/v2"
"github.com/urfave/cli/v3"
jsonpatch "gopkg.in/evanphx/json-patch.v5"
)
func CommandValidate() *cli.Command {
return &cli.Command{ //nolint:exhaustruct
Name: "validate",
Aliases: []string{},
Usage: "Validate configuration",
Action: commandValidate,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint:exhaustruct
Name: flagSubdomain,
Usage: "Validate this subdomain's configuration. Defaults to linked project",
Sources: cli.EnvVars("NHOST_SUBDOMAIN"),
},
},
}
}
func commandValidate(ctx context.Context, cmd *cli.Command) error {
ce := clienv.FromCLI(cmd)
subdomain := cmd.String(flagSubdomain)
if subdomain != "" && subdomain != "local" {
proj, err := ce.GetAppInfo(ctx, cmd.String(flagSubdomain))
if err != nil {
return fmt.Errorf("failed to get app info: %w", err)
}
_, _, err = ValidateRemote(
ctx,
ce,
proj.GetSubdomain(),
proj.GetID(),
)
return err
}
var secrets model.Secrets
if err := clienv.UnmarshalFile(ce.Path.Secrets(), &secrets, env.Unmarshal); err != nil {
return fmt.Errorf(
"failed to parse secrets, make sure secret values are between quotes: %w",
err,
)
}
ce.Infoln("Verifying configuration...")
if _, err := Validate(ce, "local", secrets); err != nil {
return err
}
ce.Infoln("Configuration is valid!")
return nil
}
func ApplyJSONPatches[T any](
cfg T,
overlayPath string,
) (*T, error) {
f, err := os.Open(overlayPath)
if err != nil {
return nil, fmt.Errorf("failed to open json patches file: %w", err)
}
defer f.Close()
patchesb, err := io.ReadAll(f)
if err != nil {
return nil, fmt.Errorf("failed to read json patches file: %w", err)
}
cfgb, err := json.Marshal(cfg)
if err != nil {
return nil, fmt.Errorf("failed to marshal config: %w", err)
}
patch, err := jsonpatch.DecodePatch(patchesb)
if err != nil {
return nil, fmt.Errorf("failed to apply json patches: %w", err)
}
cfgb, err = patch.Apply(cfgb)
if err != nil {
return nil, fmt.Errorf("failed to apply json patches: %w", err)
}
var r T
if err := json.Unmarshal(cfgb, &r); err != nil {
return nil, fmt.Errorf("failed to unmarshal config: %w", err)
}
return &r, nil
}
func Validate(
ce *clienv.CliEnv,
subdomain string,
secrets model.Secrets,
) (*model.ConfigConfig, error) {
cfg := &model.ConfigConfig{} //nolint:exhaustruct
if err := clienv.UnmarshalFile(ce.Path.NhostToml(), cfg, toml.Unmarshal); err != nil {
return nil, fmt.Errorf("failed to parse config: %w", err)
}
if clienv.PathExists(ce.Path.Overlay(subdomain)) {
var err error
cfg, err = ApplyJSONPatches(*cfg, ce.Path.Overlay(subdomain))
if err != nil {
return nil, fmt.Errorf("failed to apply json patches: %w", err)
}
}
schema, err := schema.New()
if err != nil {
return nil, fmt.Errorf("failed to create schema: %w", err)
}
cfg, err = appconfig.SecretsResolver(cfg, secrets, schema.Fill)
if err != nil {
return nil, fmt.Errorf("failed to validate config: %w", err)
}
return cfg, nil
}
// ValidateRemote validates the configuration of a remote project by fetching
// the secrets and applying them to the configuration. It also applies any
// JSON patches from the overlay directory if it exists.
// It returns the original configuration with the applied patches (without being filled
// and without secrets resolved) and another configuration filled and with secrets resolved.
func ValidateRemote(
ctx context.Context,
ce *clienv.CliEnv,
subdomain string,
appID string,
) (*model.ConfigConfig, *model.ConfigConfig, error) {
cfg := &model.ConfigConfig{} //nolint:exhaustruct
if err := clienv.UnmarshalFile(ce.Path.NhostToml(), cfg, toml.Unmarshal); err != nil {
return nil, nil, fmt.Errorf("failed to parse config: %w", err)
}
if clienv.PathExists(ce.Path.Overlay(subdomain)) {
var err error
cfg, err = ApplyJSONPatches(*cfg, ce.Path.Overlay(subdomain))
if err != nil {
return nil, nil, fmt.Errorf("failed to apply json patches: %w", err)
}
}
schema, err := schema.New()
if err != nil {
return nil, nil, fmt.Errorf("failed to create schema: %w", err)
}
ce.Infoln("Getting secrets...")
cl, err := ce.GetNhostClient(ctx)
if err != nil {
return nil, nil, fmt.Errorf("failed to get nhost client: %w", err)
}
secretsResp, err := cl.GetSecrets(
ctx,
appID,
)
if err != nil {
return nil, nil, fmt.Errorf("failed to get secrets: %w", err)
}
secrets := respToSecrets(secretsResp.GetAppSecrets(), false)
cfgSecrets, err := appconfig.SecretsResolver(cfg, secrets, schema.Fill)
if err != nil {
return nil, nil, fmt.Errorf("failed to validate config: %w", err)
}
ce.Infoln("Config is valid!")
return cfg, cfgSecrets, nil
}

View File

@@ -0,0 +1,288 @@
package config_test
import (
"os"
"path/filepath"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/clienv"
"github.com/nhost/nhost/cli/cmd/config"
"github.com/nhost/nhost/cli/project/env"
)
func ptr[T any](t T) *T {
return &t
}
func expectedConfig() *model.ConfigConfig {
//nolint:exhaustruct
return &model.ConfigConfig{
Global: &model.ConfigGlobal{
Environment: []*model.ConfigGlobalEnvironmentVariable{
{Name: "ENVIRONMENT", Value: "development"},
{Name: "FUNCTION_LOG_LEVEL", Value: "debug"},
},
},
Hasura: &model.ConfigHasura{
Version: ptr("v2.25.0-ce"),
JwtSecrets: []*model.ConfigJWTSecret{
{
Type: ptr("HS256"),
Key: ptr("0f987876650b4a085e64594fae9219e7781b17506bec02489ad061fba8cb22db"),
},
},
AdminSecret: "nhost-admin-secret",
WebhookSecret: "nhost-webhook-secret",
Settings: &model.ConfigHasuraSettings{
CorsDomain: []string{"*"},
DevMode: ptr(true),
EnableAllowList: ptr(false),
EnableConsole: ptr(true),
EnableRemoteSchemaPermissions: new(bool),
EnabledAPIs: []string{
"metadata",
"graphql",
"pgdump",
"config",
},
InferFunctionPermissions: ptr(true),
LiveQueriesMultiplexedRefetchInterval: ptr(uint32(1000)),
StringifyNumericTypes: ptr(false),
},
Logs: &model.ConfigHasuraLogs{Level: ptr("warn")},
Events: &model.ConfigHasuraEvents{HttpPoolSize: ptr(uint32(100))},
},
Functions: &model.ConfigFunctions{Node: &model.ConfigFunctionsNode{Version: ptr(22)}},
Auth: &model.ConfigAuth{
Version: ptr("0.20.0"),
Misc: &model.ConfigAuthMisc{
ConcealErrors: ptr(false),
},
ElevatedPrivileges: &model.ConfigAuthElevatedPrivileges{
Mode: ptr("disabled"),
},
Redirections: &model.ConfigAuthRedirections{
ClientUrl: ptr("http://localhost:3000"),
AllowedUrls: []string{},
},
SignUp: &model.ConfigAuthSignUp{
Enabled: ptr(true),
DisableNewUsers: ptr(false),
},
User: &model.ConfigAuthUser{
Roles: &model.ConfigAuthUserRoles{
Default: ptr("user"),
Allowed: []string{"user", "me"},
},
Locale: &model.ConfigAuthUserLocale{
Default: ptr("en"),
Allowed: []string{"en"},
},
Gravatar: &model.ConfigAuthUserGravatar{
Enabled: ptr(true),
Default: ptr("blank"),
Rating: ptr("g"),
},
Email: &model.ConfigAuthUserEmail{
Allowed: []string{},
Blocked: []string{},
},
EmailDomains: &model.ConfigAuthUserEmailDomains{
Allowed: []string{},
Blocked: []string{},
},
},
Session: &model.ConfigAuthSession{
AccessToken: &model.ConfigAuthSessionAccessToken{
ExpiresIn: ptr(uint32(900)),
CustomClaims: []*model.ConfigAuthsessionaccessTokenCustomClaims{},
},
RefreshToken: &model.ConfigAuthSessionRefreshToken{
ExpiresIn: ptr(uint32(2592000)),
},
},
Method: &model.ConfigAuthMethod{
Anonymous: &model.ConfigAuthMethodAnonymous{
Enabled: ptr(false),
},
Otp: &model.ConfigAuthMethodOtp{
Email: &model.ConfigAuthMethodOtpEmail{
Enabled: ptr(false),
},
},
EmailPasswordless: &model.ConfigAuthMethodEmailPasswordless{
Enabled: ptr(false),
},
EmailPassword: &model.ConfigAuthMethodEmailPassword{
HibpEnabled: ptr(false),
EmailVerificationRequired: ptr(true),
PasswordMinLength: ptr(uint8(9)),
},
SmsPasswordless: &model.ConfigAuthMethodSmsPasswordless{
Enabled: ptr(false),
},
Oauth: &model.ConfigAuthMethodOauth{
Apple: &model.ConfigAuthMethodOauthApple{
Enabled: ptr(false),
},
Azuread: &model.ConfigAuthMethodOauthAzuread{
Enabled: ptr(false),
Tenant: ptr("common"),
},
Bitbucket: &model.ConfigStandardOauthProvider{
Enabled: ptr(false),
},
Discord: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Entraid: &model.ConfigAuthMethodOauthEntraid{
Enabled: ptr(false),
Tenant: ptr("common"),
},
Facebook: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Github: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Gitlab: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Google: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Linkedin: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Spotify: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Strava: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Twitch: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Twitter: &model.ConfigAuthMethodOauthTwitter{
Enabled: ptr(false),
},
Windowslive: &model.ConfigStandardOauthProviderWithScope{
Enabled: ptr(false),
},
Workos: &model.ConfigAuthMethodOauthWorkos{
Enabled: ptr(false),
},
},
Webauthn: &model.ConfigAuthMethodWebauthn{
Enabled: ptr(false),
RelyingParty: nil,
Attestation: &model.ConfigAuthMethodWebauthnAttestation{
Timeout: ptr(uint32(60000)),
},
},
},
Totp: &model.ConfigAuthTotp{Enabled: ptr(false)},
RateLimit: &model.ConfigAuthRateLimit{
Emails: &model.ConfigRateLimit{
Limit: 10,
Interval: "1h",
},
Sms: &model.ConfigRateLimit{
Limit: 10,
Interval: "1h",
},
BruteForce: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
Signups: &model.ConfigRateLimit{
Limit: 10,
Interval: "5m",
},
Global: &model.ConfigRateLimit{
Limit: 100,
Interval: "1m",
},
},
},
Postgres: &model.ConfigPostgres{
Version: ptr("14.6-20230406-2"),
Resources: &model.ConfigPostgresResources{
Storage: &model.ConfigPostgresResourcesStorage{
Capacity: 1,
},
},
},
Provider: &model.ConfigProvider{},
Storage: &model.ConfigStorage{Version: ptr("0.3.4")},
Observability: &model.ConfigObservability{
Grafana: &model.ConfigGrafana{
AdminPassword: "grafana-admin-password",
Smtp: nil,
Alerting: &model.ConfigGrafanaAlerting{
Enabled: ptr(false),
},
Contacts: &model.ConfigGrafanaContacts{},
},
},
}
}
func TestValidate(t *testing.T) {
t.Parallel()
cases := []struct {
name string
path string
expected func() *model.ConfigConfig
applyPatches bool
}{
{
name: "applypatches",
path: "success",
expected: expectedConfig,
applyPatches: true,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
ce := clienv.New(
os.Stdout,
os.Stderr,
clienv.NewPathStructure(
".",
filepath.Join("testdata", "validate", tc.path),
filepath.Join("testdata", "validate", tc.path, ".nhost"),
filepath.Join("testdata", "validate", tc.path, "nhost"),
),
"fakeauthurl",
"fakegraphqlurl",
"fakebranch",
"",
"local",
)
var secrets model.Secrets
if err := clienv.UnmarshalFile(ce.Path.Secrets(), &secrets, env.Unmarshal); err != nil {
t.Fatalf(
"failed to parse secrets, make sure secret values are between quotes: %s",
err,
)
}
cfg, err := config.Validate(ce, "local", secrets)
if err != nil {
t.Fatal(err)
}
if diff := cmp.Diff(tc.expected(), cfg); diff != "" {
t.Errorf("%s", diff)
}
})
}
}

View File

@@ -0,0 +1,145 @@
package configserver
import (
"context"
"fmt"
"github.com/99designs/gqlgen/graphql"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
"github.com/nhost/be/services/mimir/graph"
cors "github.com/rs/cors/wrapper/gin"
"github.com/urfave/cli/v3"
)
const (
bindFlag = "bind"
debugFlag = "debug"
logFormatJSONFlag = "log-format-json"
enablePlaygroundFlag = "enable-playground"
storageLocalConfigPath = "storage-local-config-path"
storageLocalSecretsPath = "storage-local-secrets-path"
storageLocalRunServicesPath = "storage-local-run-services-path"
)
func Command() *cli.Command {
return &cli.Command{ //nolint: exhaustruct
Name: "configserver",
Usage: "serve the application",
Hidden: true,
Flags: []cli.Flag{
&cli.StringFlag{ //nolint: exhaustruct
Name: bindFlag,
Usage: "bind address",
Value: ":8088",
Category: "server",
},
&cli.BoolFlag{ //nolint: exhaustruct
Name: debugFlag,
Usage: "enable debug logging",
Category: "general",
},
&cli.BoolFlag{ //nolint: exhaustruct
Name: logFormatJSONFlag,
Usage: "format logs in JSON",
Category: "general",
},
&cli.BoolFlag{ //nolint: exhaustruct
Name: enablePlaygroundFlag,
Usage: "enable graphql playground (under /v1)",
Category: "server",
Sources: cli.EnvVars("ENABLE_PLAYGROUND"),
},
&cli.StringFlag{ //nolint: exhaustruct
Name: storageLocalConfigPath,
Usage: "Path to the local mimir config file",
Value: "/tmp/root/nhost/nhost.toml",
Category: "plugins",
Sources: cli.EnvVars("STORAGE_LOCAL_CONFIG_PATH"),
},
&cli.StringFlag{ //nolint: exhaustruct
Name: storageLocalSecretsPath,
Usage: "Path to the local mimir secrets file",
Value: "/tmp/root/.secrets",
Category: "plugins",
Sources: cli.EnvVars("STORAGE_LOCAL_SECRETS_PATH"),
},
&cli.StringSliceFlag{ //nolint: exhaustruct
Name: storageLocalRunServicesPath,
Usage: "Path to the local mimir run services files",
Category: "plugins",
Sources: cli.EnvVars("STORAGE_LOCAL_RUN_SERVICES_PATH"),
},
},
Action: serve,
}
}
func dummyMiddleware(
ctx context.Context,
_ any,
next graphql.Resolver,
) (any, error) {
return next(ctx)
}
func dummyMiddleware2(
ctx context.Context,
_ any,
next graphql.Resolver,
_ []string,
) (any, error) {
return next(ctx)
}
func runServicesFiles(runServices ...string) map[string]string {
m := make(map[string]string)
for _, path := range runServices {
id := uuid.NewString()
m[id] = path
}
return m
}
func serve(_ context.Context, cmd *cli.Command) error {
logger := getLogger(cmd.Bool(debugFlag), cmd.Bool(logFormatJSONFlag))
logger.Info(cmd.Root().Name + " v" + cmd.Root().Version)
logFlags(logger, cmd)
configFile := cmd.String(storageLocalConfigPath)
secretsFile := cmd.String(storageLocalSecretsPath)
runServices := runServicesFiles(cmd.StringSlice(storageLocalRunServicesPath)...)
st := NewLocal(configFile, secretsFile, runServices)
data, err := st.GetApps(configFile, secretsFile, runServices)
if err != nil {
return fmt.Errorf("failed to get data from plugin: %w", err)
}
plugins := []graph.Plugin{st}
resolver, err := graph.NewResolver(data, Querier{}, plugins)
if err != nil {
return fmt.Errorf("failed to create resolver: %w", err)
}
r := graph.SetupRouter(
"/v1/configserver",
resolver,
dummyMiddleware,
dummyMiddleware2,
cmd.Bool(enablePlaygroundFlag),
cmd.Root().Version,
[]graphql.FieldMiddleware{},
gin.Recovery(),
cors.Default(),
)
if err := r.Run(cmd.String(bindFlag)); err != nil {
return fmt.Errorf("failed to run gin: %w", err)
}
return nil
}

View File

@@ -0,0 +1,220 @@
package configserver
import (
"context"
"encoding/json"
"errors"
"fmt"
"os"
"strings"
"github.com/nhost/be/services/mimir/graph"
"github.com/nhost/be/services/mimir/model"
"github.com/nhost/nhost/cli/project/env"
"github.com/pelletier/go-toml/v2"
"github.com/sirupsen/logrus"
)
const zeroUUID = "00000000-0000-0000-0000-000000000000"
var ErrNotImpl = errors.New("not implemented")
type Local struct {
// we use paths instead of readers/writers because the intention is that these
// files will be mounted as volumes in a container and if the file is changed
// outside of the container, the filedescriptor might just be pointing to the
// old file.
config string
secrets string
runServices map[string]string
}
func NewLocal(config, secrets string, runServices map[string]string) *Local {
return &Local{
config: config,
secrets: secrets,
runServices: runServices,
}
}
func unmarshal[T any](config any) (*T, error) {
b, err := json.Marshal(config)
if err != nil {
return nil, fmt.Errorf("problem marshaling cue value: %w", err)
}
var cfg T
if err := json.Unmarshal(b, &cfg); err != nil {
return nil, fmt.Errorf("problem unmarshaling cue value: %w", err)
}
return &cfg, nil
}
func (l *Local) GetServices(runServices map[string]string) (graph.Services, error) {
services := make(graph.Services, 0, len(runServices))
for id, r := range runServices {
b, err := os.ReadFile(r)
if err != nil {
return nil, fmt.Errorf("failed to read run service file: %w", err)
}
var cfg model.ConfigRunServiceConfig
if err := toml.Unmarshal(b, &cfg); err != nil {
return nil, fmt.Errorf("failed to unmarshal run service config: %w", err)
}
services = append(services, &graph.Service{
ServiceID: id,
Config: &cfg,
})
}
return services, nil
}
func (l *Local) GetApps(
configFile, secretsFile string, runServicesFiles map[string]string,
) ([]*graph.App, error) {
b, err := os.ReadFile(configFile)
if err != nil {
return nil, fmt.Errorf("failed to read config file: %w", err)
}
var rawCfg any
if err := toml.Unmarshal(b, &rawCfg); err != nil {
return nil, fmt.Errorf("failed to unmarshal config: %w", err)
}
cfg, err := unmarshal[model.ConfigConfig](rawCfg)
if err != nil {
return nil, fmt.Errorf("failed to fill config: %w", err)
}
b, err = os.ReadFile(secretsFile)
if err != nil {
return nil, fmt.Errorf("failed to read secrets file: %w", err)
}
var secrets model.Secrets
if err := env.Unmarshal(b, &secrets); err != nil {
return nil, fmt.Errorf(
"failed to parse secrets, make sure secret values are between quotes: %w",
err,
)
}
services, err := l.GetServices(runServicesFiles)
if err != nil {
return nil, fmt.Errorf("failed to get services: %w", err)
}
pgMajorVersion := "14"
if cfg.GetPostgres().GetVersion() != nil {
pgMajorVersion = strings.Split(*cfg.GetPostgres().GetVersion(), ".")[0]
}
return []*graph.App{
{
Config: cfg,
SystemConfig: &model.ConfigSystemConfig{ //nolint:exhaustruct
Postgres: &model.ConfigSystemConfigPostgres{ //nolint:exhaustruct
MajorVersion: &pgMajorVersion,
Database: "local",
ConnectionString: &model.ConfigSystemConfigPostgresConnectionString{
Backup: "a",
Hasura: "a",
Auth: "a",
Storage: "a",
},
},
},
Secrets: secrets,
Services: services,
AppID: zeroUUID,
},
}, nil
}
func (l *Local) CreateApp(_ context.Context, _ *graph.App, _ logrus.FieldLogger) error {
return ErrNotImpl
}
func (l *Local) DeleteApp(_ context.Context, _ *graph.App, _ logrus.FieldLogger) error {
return ErrNotImpl
}
func (l *Local) UpdateConfig(_ context.Context, _, newApp *graph.App, _ logrus.FieldLogger) error {
b, err := toml.Marshal(newApp.Config)
if err != nil {
return fmt.Errorf("failed to marshal app config: %w", err)
}
if err := os.WriteFile(l.config, b, 0o644); err != nil { //nolint:gosec,mnd
return fmt.Errorf("failed to write config: %w", err)
}
return nil
}
func (l *Local) UpdateSystemConfig(_ context.Context, _, _ *graph.App, _ logrus.FieldLogger) error {
return ErrNotImpl
}
func (l *Local) UpdateSecrets(_ context.Context, _, newApp *graph.App, _ logrus.FieldLogger) error {
m := make(map[string]string)
for _, v := range newApp.Secrets {
m[v.Name] = v.Value
}
b, err := toml.Marshal(m)
if err != nil {
return fmt.Errorf("failed to marshal app secrets: %w", err)
}
if err := os.WriteFile(l.secrets, b, 0o644); err != nil { //nolint:gosec,mnd
return fmt.Errorf("failed to write secrets: %w", err)
}
return nil
}
func (l *Local) CreateRunServiceConfig(
_ context.Context, _ string, _ *graph.Service, _ logrus.FieldLogger,
) error {
return ErrNotImpl
}
func (l *Local) UpdateRunServiceConfig(
_ context.Context, _ string, _, newSvc *graph.Service, _ logrus.FieldLogger,
) error {
wr, ok := l.runServices[newSvc.ServiceID]
if !ok {
return fmt.Errorf("run service not found: %s", newSvc.ServiceID) //nolint:err113
}
b, err := toml.Marshal(newSvc.Config)
if err != nil {
return fmt.Errorf("failed to marshal run service config: %w", err)
}
if err := os.WriteFile(wr, b, 0o644); err != nil { //nolint:gosec,mnd
return fmt.Errorf("failed to write run service config: %w", err)
}
return nil
}
func (l *Local) DeleteRunServiceConfig(
_ context.Context, _ string, _ *graph.Service, _ logrus.FieldLogger,
) error {
return ErrNotImpl
}
func (l *Local) ChangeDatabaseVersion(
_ context.Context,
_, _ *graph.App,
_ logrus.FieldLogger,
) error {
return ErrNotImpl
}

Some files were not shown because too many files have changed in this diff Show More