[GH-ISSUE #4436] [feature]: sync strategy for user data when user log in #1629

Open
opened 2026-03-16 21:10:45 +03:00 by kerem · 6 comments
Owner

Originally created by @shipko on GitHub (Oct 14, 2024).
Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/4436

Is there an existing issue for this?

  • I have searched the existing issues

Summary

  1. When I work with a local collection and I have logged in, my state is synchronized with the cloud.
  2. After logging out, I continue to work with my personal collection, my data is not synchronized with the server.
  3. After a while, I log in as a user, my current changes made in step 2 were erased and lost.

The problem lies in this line of the file https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts#L73-L82 and https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts#L73-L82

Why should this be worked on?

After studying the code, it became clear that priority is given to data from the cloud. User data is simply deleted in this case. This is wrong and may alienate QA engineers due to the risk of losing their own data.

I suggest developing a more correct data synchronization strategy.

Originally created by @shipko on GitHub (Oct 14, 2024). Original GitHub issue: https://github.com/hoppscotch/hoppscotch/issues/4436 ### Is there an existing issue for this? - [X] I have searched the existing issues ### Summary 1. When I work with a local collection and I have logged in, my state is synchronized with the cloud. 2. After logging out, I continue to work with my personal collection, my data is not synchronized with the server. 3. After a while, I log in as a user, my current changes made in step 2 **were erased and lost**. The problem lies in this line of the file https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-selfhost-web/src/platform/collections/collections.platform.ts#L73-L82 and https://github.com/hoppscotch/hoppscotch/blob/main/packages/hoppscotch-selfhost-desktop/src/platform/collections/collections.platform.ts#L73-L82 ### Why should this be worked on? After studying the code, it became clear that priority is given to data from the cloud. User data is simply deleted in this case. This is wrong and may alienate QA engineers due to the risk of losing their own data. I suggest developing a more correct data synchronization strategy.
Author
Owner

@shipko commented on GitHub (Oct 14, 2024):

@jamesgeorge007 @AndrewBastin @balub
I see 2 potential data fusion strategies:

  1. Updating data by checking the existence of an identifier (id). If it is not present, the client sends the data to the server. This applies both to creating collections, queries, folders, and more. If there is a certain entity on the server, but it is not in the local copy, then we can ask the user to return it or not.
  2. Output the table as in git, where the user decides for himself which data will end up in the final collection.

This description applies only to the custom collection. Separately, you can discuss the strategy for updating environment variables.

<!-- gh-comment-id:2409911601 --> @shipko commented on GitHub (Oct 14, 2024): @jamesgeorge007 @AndrewBastin @balub I see 2 potential data fusion strategies: 1) Updating data by checking the existence of an identifier (id). If it is not present, the client sends the data to the server. This applies both to creating collections, queries, folders, and more. If there is a certain entity on the server, but it is not in the local copy, then we can ask the user to return it or not. 2) Output the table as in git, where the user decides for himself which data will end up in the final collection. This description applies only to the custom collection. Separately, you can discuss the strategy for updating environment variables.
Author
Owner

@AndrewBastin commented on GitHub (Oct 14, 2024):

After studying the code, it became clear that priority is given to data from the cloud.

I wouldn't term it as that mostly, but personal and teams having different concerns. Being able to work offline is a thing exclusive to Personal Workspaces in Hoppscotch and is not a concern for teams, so that implementation is super simple.

I am toying with some ideas for allowing offline mode to work fully, maybe by incorporating Git or some VCS kind of format to enable it, but its a pretty big ordeal for the time being and this issue hasn't come up in discussions often enough to justify time on it for the time being. We welcome PRs and improvement suggestions though.

Output the table as in git, where the user decides for himself which data will end up in the final collection.

This requires the browser to be able to provide access to the filesystem, which although is possible with the File System API, the UX around it in browser is not consistent and we are not a big fan of it. We are actually working on getting a File Based Workspace specification which allows workspaces to be checked into Git, and we are planning on offering that as an option in the Desktop apps. I am hoping to complete the specification and present it for an RFC soon, but the progress on it is slow as well.

<!-- gh-comment-id:2410571708 --> @AndrewBastin commented on GitHub (Oct 14, 2024): > After studying the code, it became clear that priority is given to data from the cloud. I wouldn't term it as that mostly, but personal and teams having different concerns. Being able to work offline is a thing exclusive to Personal Workspaces in Hoppscotch and is not a concern for teams, so that implementation is super simple. I am toying with some ideas for allowing offline mode to work fully, maybe by incorporating Git or some VCS kind of format to enable it, but its a pretty big ordeal for the time being and this issue hasn't come up in discussions often enough to justify time on it for the time being. We welcome PRs and improvement suggestions though. > Output the table as in git, where the user decides for himself which data will end up in the final collection. This requires the browser to be able to provide access to the filesystem, which although is possible with the File System API, the UX around it in browser is not consistent and we are not a big fan of it. We are actually working on getting a File Based Workspace specification which allows workspaces to be checked into Git, and we are planning on offering that as an option in the Desktop apps. I am hoping to complete the specification and present it for an RFC soon, but the progress on it is slow as well.
Author
Owner

@takshakmudgal commented on GitHub (Oct 14, 2024):

Hey, I would like to work on this issue.
In order to approach this, I could define a syncCollections function that handles the synchronization process for a given collection type. I can then prioritizes local changes over cloud data, preserve new local collections and Include any new cloud collections not present locally.

<!-- gh-comment-id:2411849026 --> @takshakmudgal commented on GitHub (Oct 14, 2024): Hey, I would like to work on this issue. In order to approach this, I could define a `syncCollections` function that handles the synchronization process for a given collection type. I can then `prioritizes local changes over cloud data`, `preserve new local collections` and `Include any new cloud collections not present locally`.
Author
Owner

@shipko commented on GitHub (Oct 15, 2024):

@takshakmudgal I think these are the right principles. Of course there are many pitfalls here, but I think we can discuss them in the process of solving them.

@AndrewBastin can we assign this task?

<!-- gh-comment-id:2413074010 --> @shipko commented on GitHub (Oct 15, 2024): @takshakmudgal I think these are the right principles. Of course there are many pitfalls here, but I think we can discuss them in the process of solving them. @AndrewBastin can we assign this task?
Author
Owner

@AndrewBastin commented on GitHub (Oct 15, 2024):

Yep, I am cool, you don't need to wait for task assignment for working on the PR (we avoid this practice because most people who we assign tickets to usually never respond back with PRs), so feel free to start working on it.

My issue with @takshakmudgal 's proposal is mostly around it not containing enough details about the hard parts, mostly how will we deal with merging data (there are representations of ideas, but if you go through the codebase you can see we don't exactly track timestamps of when things are created, its even not very easy to track stuff with the current structure) along with things like conflict resolution, so I need to either see the code or atleast a clear plans for it before I can fully get behind.

<!-- gh-comment-id:2413118716 --> @AndrewBastin commented on GitHub (Oct 15, 2024): Yep, I am cool, you don't need to wait for task assignment for working on the PR (we avoid this practice because most people who we assign tickets to usually never respond back with PRs), so feel free to start working on it. My issue with @takshakmudgal 's proposal is mostly around it not containing enough details about the hard parts, mostly how will we deal with merging data (there are representations of ideas, but if you go through the codebase you can see we don't exactly track timestamps of when things are created, its even not very easy to track stuff with the current structure) along with things like conflict resolution, so I need to either see the code or atleast a clear plans for it before I can fully get behind.
Author
Owner

@takshakmudgal commented on GitHub (Oct 18, 2024):

@AndrewBastin I am facing some local setup issues and docker compose issues in my local developement enviroment.
These are the logs when I am trying to run the backend, frontend runs perfectly.

❯ docker compose build
[+] Building 667.3s (45/70)                                docker:desktop-linux
 => [hoppscotch-aio internal] load build definition from prod.Dockerfile   0.1s
 => => transferring dockerfile: 4.65kB                                     0.0s
 => [hoppscotch-backend internal] load build definition from prod.Dockerf  0.2s
 => => transferring dockerfile: 4.65kB                                     0.0s
 => [hoppscotch-old-backend internal] load build definition from Dockerfi  0.3s
 => => transferring dockerfile: 618B                                       0.0s
 => [hoppscotch-aio internal] load metadata for docker.io/library/node:20  5.8s
 => [hoppscotch-old-backend internal] load metadata for docker.io/library  8.5s
 => [hoppscotch-backend internal] load .dockerignore                       0.1s
 => => transferring context: 130B                                          0.0s
 => [hoppscotch-aio internal] load .dockerignore                           0.2s
 => => transferring context: 130B                                          0.0s
 => [hoppscotch-backend internal] load build context                       0.7s
 => => transferring context: 4.81MB                                        0.6s
 => CACHED [hoppscotch-aio base_builder 1/8] FROM docker.io/library/node:  0.0s
 => [hoppscotch-backend backend 2/7] RUN apk add caddy                    14.9s
 => [hoppscotch-aio internal] load build context                           1.5s 
 => => transferring context: 104.96MB                                      1.3s 
 => CACHED [hoppscotch-aio base_builder 2/8] WORKDIR /usr/src/app          0.0s 
 => CACHED [hoppscotch-aio base_builder 3/8] RUN apk add python3 make g++  0.0s 
 => CACHED [hoppscotch-aio base_builder 4/8] RUN npm install -g pnpm       0.0s 
 => CACHED [hoppscotch-backend base_builder 5/8] COPY pnpm-lock.yaml .     0.0s 
 => CACHED [hoppscotch-aio base_builder 6/8] RUN pnpm fetch                0.0s
 => [hoppscotch-aio base_builder 7/8] COPY . .                             1.3s
 => [hoppscotch-backend base_builder 8/8] RUN pnpm install -f --offline  458.8s
 => [hoppscotch-old-backend internal] load .dockerignore                   0.1s
 => => transferring context: 130B                                          0.0s
 => [hoppscotch-old-backend builder 1/9] FROM docker.io/library/node:20  254.4s
 => => resolve docker.io/library/node:20.12.2@sha256:3864be2201676a715cf2  0.1s
 => => sha256:b39e0b4385dc35a8bdfde21a5c66250ad72b2602c4a 7.41kB / 7.41kB  0.0s
 => => sha256:3864be2201676a715cf240cfc17aec1d62459f92a7c 1.21kB / 1.21kB  0.0s
 => => sha256:740804d1d9a2a05282a7a359446398ec5f233eea431 2.00kB / 2.00kB  0.0s
 => => sha256:2cf9c2b42f41b1845f3e4421b723d56146db8293 24.05MB / 24.05MB  47.5s
 => => sha256:c4c40c3e3cdf945721f480e1d939aac857876fd 64.14MB / 64.14MB  129.8s
 => => sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6 49.58MB / 49.58MB  87.2s
 => => sha256:c05cc1123d7e335d59b0f465c23b7ad2ad27f 211.18MB / 211.18MB  237.1s
 => => extracting sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6eb2180cf  4.5s
 => => sha256:04f2356c02d21ef160986f7994210be28dab889b9b 3.37kB / 3.37kB  89.3s
 => => sha256:0d0c50523b913bafd5bd2633ede982f69c0e3ef 48.02MB / 48.02MB  171.2s
 => => extracting sha256:2cf9c2b42f41b1845f3e4421b723d56146db82939dc88455  1.0s
 => => sha256:d82ea00ba3b4e489db5a7e199a5d99778596b0272 1.25MB / 1.25MB  135.5s
 => => extracting sha256:c4c40c3e3cdf945721f480e1d939aac857876fdb5c33b8fb  5.0s
 => => sha256:e61adbe39f6613cc222b7d3f12aac1cfc0f30fa1cdc42 452B / 452B  136.4s
 => => extracting sha256:c05cc1123d7e335d59b0f465c23b7ad2ad27f4875b6c3ea  10.7s
 => => extracting sha256:04f2356c02d21ef160986f7994210be28dab889b9ba0724e  0.0s
 => => extracting sha256:0d0c50523b913bafd5bd2633ede982f69c0e3efea5a3b53f  3.2s
 => => extracting sha256:d82ea00ba3b4e489db5a7e199a5d99778596b0272c8f7b7c  0.2s
 => => extracting sha256:e61adbe39f6613cc222b7d3f12aac1cfc0f30fa1cdc42b26  0.0s
 => [hoppscotch-old-backend internal] load build context                   0.2s
 => => transferring context: 3.11MB                                        0.1s
 => [hoppscotch-backend backend 3/7] RUN npm install -g pnpm              18.6s
 => [hoppscotch-old-backend builder 2/9] WORKDIR /usr/src/app              0.9s
 => [hoppscotch-old-backend builder 3/9] RUN npm i -g pnpm                12.3s
 => [hoppscotch-old-backend builder 4/9] COPY .env .                       0.4s
 => [hoppscotch-old-backend builder 5/9] COPY pnpm-lock.yaml .             0.4s
 => [hoppscotch-old-backend builder 6/9] RUN pnpm fetch                  179.0s
 => [hoppscotch-old-backend builder 7/9] COPY ./packages/hoppscotch-backe  0.6s
 => [hoppscotch-old-backend builder 8/9] RUN pnpm i --filter hoppscotch  210.1s
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 63         
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 66         
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 67         
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 68         
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 69         
 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 69, done   
 => CACHED [hoppscotch-aio base_builder 5/8] COPY pnpm-lock.yaml .         0.0s
 => CACHED [hoppscotch-aio base_builder 6/8] RUN pnpm fetch                0.0s
 => CACHED [hoppscotch-aio base_builder 7/8] COPY . .                      0.0s
 => CACHED [hoppscotch-aio base_builder 8/8] RUN pnpm install -f --offlin  0.0s
 => [hoppscotch-aio sh_admin_builder 1/3] WORKDIR /usr/src/app/packages/h  0.3s
 => [hoppscotch-aio fe_builder 1/2] WORKDIR /usr/src/app/packages/hoppsco  0.5s
 => [hoppscotch-backend backend_builder 1/6] WORKDIR /usr/src/app/package  0.4s
 => [hoppscotch-aio sh_admin_builder 2/3] RUN pnpm run build --outDir di  60.1s
 => [hoppscotch-backend backend_builder 2/6] RUN pnpm exec prisma generat  6.0s
 => ERROR [hoppscotch-aio fe_builder 2/2] RUN pnpm run generate          194.2s
 => [hoppscotch-backend backend_builder 3/6] RUN pnpm run build           43.7s
 => [hoppscotch-backend backend 4/7] COPY --from=base_builder  /usr/src/a  0.6s
 => CACHED [hoppscotch-aio aio  2/16] RUN apk add caddy                    0.0s
 => CACHED [hoppscotch-aio aio  3/16] RUN apk add tini curl                0.0s
 => CACHED [hoppscotch-aio aio  4/16] RUN npm install -g pnpm              0.0s
 => CACHED [hoppscotch-aio aio  5/16] COPY --from=base_builder /usr/src/a  0.0s
 => CANCELED [hoppscotch-aio backend_builder 4/6] RUN pnpm --filter=hop  150.1s
 => => # ../..                                    | Progress: resolved 1358, re
 => => # used 1313, downloaded 0, added 492                                    
 => => # ../..                                    | Progress: resolved 1358, re
 => => # used 1313, downloaded 0, added 497                                    
 => => # ../..                                    | Progress: resolved 1358, re
 => => # used 1313, downloaded 0, added 501                                    
 => CANCELED [hoppscotch-aio sh_admin_builder 3/3] RUN pnpm run build -  135.2s
------
 > [hoppscotch-aio fe_builder 2/2] RUN pnpm run generate:
1.424 
1.424 > @hoppscotch/selfhost-web@2024.9.3 generate /usr/src/app/packages/hoppscotch-selfhost-web
1.424 > pnpm run build
1.424 
2.205 
2.205 > @hoppscotch/selfhost-web@2024.9.3 build /usr/src/app/packages/hoppscotch-selfhost-web
2.205 > node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build
2.205 
5.097 vite v4.5.0 building for production...
6.497 transforming...
8.785 Browserslist: caniuse-lite is outdated. Please run:
8.785   npx update-browserslist-db@latest
8.785   Why you should do it regularly: https://github.com/browserslist/update-db#readme
64.60 [plugin:vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/insomnia-importers@3.6.0_openapi-types@12.1.3/node_modules/insomnia-importers/dist/src/importers/openapi-3.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
64.62 [plugin:vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/insomnia-importers@3.6.0_openapi-types@12.1.3/node_modules/insomnia-importers/dist/src/importers/swagger-2.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
65.35 [plugin:vite:resolve] Module "http" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/@apidevtools+json-schema-ref-parser@9.0.6/node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
65.35 [plugin:vite:resolve] Module "https" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/@apidevtools+json-schema-ref-parser@9.0.6/node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.
192.8  ELIFECYCLE  Command failed.
------
failed to solve: process "/bin/sh -c pnpm run generate" did not complete successfully: exit code: 1
<!-- gh-comment-id:2423176432 --> @takshakmudgal commented on GitHub (Oct 18, 2024): @AndrewBastin I am facing some local setup issues and docker compose issues in my local developement enviroment. These are the logs when I am trying to run the backend, frontend runs perfectly. ``` ❯ docker compose build [+] Building 667.3s (45/70) docker:desktop-linux => [hoppscotch-aio internal] load build definition from prod.Dockerfile 0.1s => => transferring dockerfile: 4.65kB 0.0s => [hoppscotch-backend internal] load build definition from prod.Dockerf 0.2s => => transferring dockerfile: 4.65kB 0.0s => [hoppscotch-old-backend internal] load build definition from Dockerfi 0.3s => => transferring dockerfile: 618B 0.0s => [hoppscotch-aio internal] load metadata for docker.io/library/node:20 5.8s => [hoppscotch-old-backend internal] load metadata for docker.io/library 8.5s => [hoppscotch-backend internal] load .dockerignore 0.1s => => transferring context: 130B 0.0s => [hoppscotch-aio internal] load .dockerignore 0.2s => => transferring context: 130B 0.0s => [hoppscotch-backend internal] load build context 0.7s => => transferring context: 4.81MB 0.6s => CACHED [hoppscotch-aio base_builder 1/8] FROM docker.io/library/node: 0.0s => [hoppscotch-backend backend 2/7] RUN apk add caddy 14.9s => [hoppscotch-aio internal] load build context 1.5s => => transferring context: 104.96MB 1.3s => CACHED [hoppscotch-aio base_builder 2/8] WORKDIR /usr/src/app 0.0s => CACHED [hoppscotch-aio base_builder 3/8] RUN apk add python3 make g++ 0.0s => CACHED [hoppscotch-aio base_builder 4/8] RUN npm install -g pnpm 0.0s => CACHED [hoppscotch-backend base_builder 5/8] COPY pnpm-lock.yaml . 0.0s => CACHED [hoppscotch-aio base_builder 6/8] RUN pnpm fetch 0.0s => [hoppscotch-aio base_builder 7/8] COPY . . 1.3s => [hoppscotch-backend base_builder 8/8] RUN pnpm install -f --offline 458.8s => [hoppscotch-old-backend internal] load .dockerignore 0.1s => => transferring context: 130B 0.0s => [hoppscotch-old-backend builder 1/9] FROM docker.io/library/node:20 254.4s => => resolve docker.io/library/node:20.12.2@sha256:3864be2201676a715cf2 0.1s => => sha256:b39e0b4385dc35a8bdfde21a5c66250ad72b2602c4a 7.41kB / 7.41kB 0.0s => => sha256:3864be2201676a715cf240cfc17aec1d62459f92a7c 1.21kB / 1.21kB 0.0s => => sha256:740804d1d9a2a05282a7a359446398ec5f233eea431 2.00kB / 2.00kB 0.0s => => sha256:2cf9c2b42f41b1845f3e4421b723d56146db8293 24.05MB / 24.05MB 47.5s => => sha256:c4c40c3e3cdf945721f480e1d939aac857876fd 64.14MB / 64.14MB 129.8s => => sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6 49.58MB / 49.58MB 87.2s => => sha256:c05cc1123d7e335d59b0f465c23b7ad2ad27f 211.18MB / 211.18MB 237.1s => => extracting sha256:1468e7ff95fcb865fbc4dee7094f8b99c4dcddd6eb2180cf 4.5s => => sha256:04f2356c02d21ef160986f7994210be28dab889b9b 3.37kB / 3.37kB 89.3s => => sha256:0d0c50523b913bafd5bd2633ede982f69c0e3ef 48.02MB / 48.02MB 171.2s => => extracting sha256:2cf9c2b42f41b1845f3e4421b723d56146db82939dc88455 1.0s => => sha256:d82ea00ba3b4e489db5a7e199a5d99778596b0272 1.25MB / 1.25MB 135.5s => => extracting sha256:c4c40c3e3cdf945721f480e1d939aac857876fdb5c33b8fb 5.0s => => sha256:e61adbe39f6613cc222b7d3f12aac1cfc0f30fa1cdc42 452B / 452B 136.4s => => extracting sha256:c05cc1123d7e335d59b0f465c23b7ad2ad27f4875b6c3ea 10.7s => => extracting sha256:04f2356c02d21ef160986f7994210be28dab889b9ba0724e 0.0s => => extracting sha256:0d0c50523b913bafd5bd2633ede982f69c0e3efea5a3b53f 3.2s => => extracting sha256:d82ea00ba3b4e489db5a7e199a5d99778596b0272c8f7b7c 0.2s => => extracting sha256:e61adbe39f6613cc222b7d3f12aac1cfc0f30fa1cdc42b26 0.0s => [hoppscotch-old-backend internal] load build context 0.2s => => transferring context: 3.11MB 0.1s => [hoppscotch-backend backend 3/7] RUN npm install -g pnpm 18.6s => [hoppscotch-old-backend builder 2/9] WORKDIR /usr/src/app 0.9s => [hoppscotch-old-backend builder 3/9] RUN npm i -g pnpm 12.3s => [hoppscotch-old-backend builder 4/9] COPY .env . 0.4s => [hoppscotch-old-backend builder 5/9] COPY pnpm-lock.yaml . 0.4s => [hoppscotch-old-backend builder 6/9] RUN pnpm fetch 179.0s => [hoppscotch-old-backend builder 7/9] COPY ./packages/hoppscotch-backe 0.6s => [hoppscotch-old-backend builder 8/9] RUN pnpm i --filter hoppscotch 210.1s => => # Progress: resolved 1101, reused 1032, downloaded 60, added 63 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 66 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 67 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 68 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 69 => => # Progress: resolved 1101, reused 1032, downloaded 60, added 69, done => CACHED [hoppscotch-aio base_builder 5/8] COPY pnpm-lock.yaml . 0.0s => CACHED [hoppscotch-aio base_builder 6/8] RUN pnpm fetch 0.0s => CACHED [hoppscotch-aio base_builder 7/8] COPY . . 0.0s => CACHED [hoppscotch-aio base_builder 8/8] RUN pnpm install -f --offlin 0.0s => [hoppscotch-aio sh_admin_builder 1/3] WORKDIR /usr/src/app/packages/h 0.3s => [hoppscotch-aio fe_builder 1/2] WORKDIR /usr/src/app/packages/hoppsco 0.5s => [hoppscotch-backend backend_builder 1/6] WORKDIR /usr/src/app/package 0.4s => [hoppscotch-aio sh_admin_builder 2/3] RUN pnpm run build --outDir di 60.1s => [hoppscotch-backend backend_builder 2/6] RUN pnpm exec prisma generat 6.0s => ERROR [hoppscotch-aio fe_builder 2/2] RUN pnpm run generate 194.2s => [hoppscotch-backend backend_builder 3/6] RUN pnpm run build 43.7s => [hoppscotch-backend backend 4/7] COPY --from=base_builder /usr/src/a 0.6s => CACHED [hoppscotch-aio aio 2/16] RUN apk add caddy 0.0s => CACHED [hoppscotch-aio aio 3/16] RUN apk add tini curl 0.0s => CACHED [hoppscotch-aio aio 4/16] RUN npm install -g pnpm 0.0s => CACHED [hoppscotch-aio aio 5/16] COPY --from=base_builder /usr/src/a 0.0s => CANCELED [hoppscotch-aio backend_builder 4/6] RUN pnpm --filter=hop 150.1s => => # ../.. | Progress: resolved 1358, re => => # used 1313, downloaded 0, added 492 => => # ../.. | Progress: resolved 1358, re => => # used 1313, downloaded 0, added 497 => => # ../.. | Progress: resolved 1358, re => => # used 1313, downloaded 0, added 501 => CANCELED [hoppscotch-aio sh_admin_builder 3/3] RUN pnpm run build - 135.2s ------ > [hoppscotch-aio fe_builder 2/2] RUN pnpm run generate: 1.424 1.424 > @hoppscotch/selfhost-web@2024.9.3 generate /usr/src/app/packages/hoppscotch-selfhost-web 1.424 > pnpm run build 1.424 2.205 2.205 > @hoppscotch/selfhost-web@2024.9.3 build /usr/src/app/packages/hoppscotch-selfhost-web 2.205 > node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build 2.205 5.097 vite v4.5.0 building for production... 6.497 transforming... 8.785 Browserslist: caniuse-lite is outdated. Please run: 8.785 npx update-browserslist-db@latest 8.785 Why you should do it regularly: https://github.com/browserslist/update-db#readme 64.60 [plugin:vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/insomnia-importers@3.6.0_openapi-types@12.1.3/node_modules/insomnia-importers/dist/src/importers/openapi-3.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. 64.62 [plugin:vite:resolve] Module "crypto" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/insomnia-importers@3.6.0_openapi-types@12.1.3/node_modules/insomnia-importers/dist/src/importers/swagger-2.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. 65.35 [plugin:vite:resolve] Module "http" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/@apidevtools+json-schema-ref-parser@9.0.6/node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. 65.35 [plugin:vite:resolve] Module "https" has been externalized for browser compatibility, imported by "/usr/src/app/node_modules/.pnpm/@apidevtools+json-schema-ref-parser@9.0.6/node_modules/@apidevtools/json-schema-ref-parser/lib/resolvers/http.js". See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details. 192.8  ELIFECYCLE  Command failed. ------ failed to solve: process "/bin/sh -c pnpm run generate" did not complete successfully: exit code: 1 ```
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hoppscotch#1629
No description provided.