Commit Graph
50 Commits
Author SHA1 Message Date
Lin, Hung-Shin 21ca083628 Merge branch 'main' into quest-file 2023-11-22 11:39:24 +08:00
CHEN, TAI-LIN b514fa8bea Merge branch 'quest' into quest-file 2023-11-21 11:09:23 +08:00
Lin, Hung-Shin 3fed851b7b feat: reload all quest on starting 2023-11-21 11:04:52 +08:00
Chen, Tai-Lin d4da065a95 fix: load quest erorr handling 2023-11-21 10:48:35 +08:00
Lin, Hung-Shin ee5e8afe7b fix: logger import 2023-11-21 10:38:36 +08:00
Lin, Hung-Shin 0d886a686e fix: remove console log in backend 2023-11-21 10:15:06 +08:00
Lin, Hung-Shin 82d1004ecf wip: removing console log 2023-11-20 14:59:14 +08:00
Lin, Hung-Shin 515aefcadc feat: add winston 2023-11-20 14:36:38 +08:00
Chen, Tai-Lin c9a24b92ad fix: load quest erorr handling 2023-11-20 12:58:18 +08:00
wancat f81c96be62 fix: fix createUser without password 2023-11-18 18:22:27 +08:00
Chen, Tai-Lin 0ac1dbed96 Merge branch 'main' into feat-build-quests 2023-11-17 15:12:32 +08:00
Lin, Hung-Shin 387f577ae1 fix: rename setupTest 2023-11-17 11:41:33 +08:00
Lin, Hung-Shin 1f77328362 feat: add testing setup in backend 2023-11-17 10:59:47 +08:00
wancat 7b1591a6e3 feat: add build qeust images script 2023-11-16 20:49:54 +08:00
wancat 8bbd5da513 feat: load create session by quest image 2023-11-16 19:48:22 +08:00
Lin, Hung-Shin fac91e0f10 feat: update quest and user schema
* add requirements in quest
* add progress in user
2023-11-14 10:44:52 +08:00
Lin, Hung-Shin c551f0c92b fix: remove default user 2023-11-01 14:19:45 +08:00
Lin, Hung-Shin f18ec35a9f feat: generate secure secret key and prevent default 2023-11-01 14:19:18 +08:00
Chen, Tai-Lin b4a37f7606 fix: remove order in game schema 2023-10-29 17:41:38 +08:00
wancat 50bf514805 feat: separate db models from server 2023-10-14 15:34:46 +08:00
Lin, Hung-Shin c5ccf03ac5 feat: add username and email check in frontend 2023-10-13 16:38:25 +08:00
wancat 182fcf643f feat: pick username
* put new registered social login user to session data
* ask to choose username
* simplify checkUsername functions
2023-10-13 00:05:59 +08:00
wancat d745531a14 feat: update swagger, secure cookie 2023-09-17 12:48:50 +08:00
Lin, Hung-Shin f1510df13e feat: enhance checkUser api
* determine whether it's email or username, and if it exists
2023-09-14 17:43:07 +08:00
Lin, Hung-Shin 3aa27ae597 feat: add username and email validation function 2023-09-14 17:39:26 +08:00
wancat b55b7aa1ec feat: add register, checkUsername, update swagger 2023-09-12 23:01:49 +08:00
wancat 0f53696f71 feat: apply auth to container and cli client 2023-09-12 00:12:09 +08:00
wancat 030dc95e24 refactor: put passport to auth folder 2023-09-11 23:38:29 +08:00
wancat 41111f5036 feat: add jwt verification 2023-09-11 23:09:00 +08:00
wancat bcdd04715d feat: add password login 2023-09-11 22:59:41 +08:00
wancat de8d49aea3 fix: change jwt expiry time to config
* rename dockerfile env
2023-09-01 13:54:51 +08:00
wancat c3683ddaea feat: import file-graph package
* Update Dockerfile structure, copy quests, packages to sub folder
2023-08-29 11:58:14 +08:00
wancat 4b3a80608c fix: remove hard coded project path
+ pass host_pwd using docker compose
+ mount it only when provided
2023-08-22 16:05:06 +08:00
wancat 9aa9367f9e refactor: move quests out of server
+ move quests from server/quests to ./quests
+ add frontend image in docker compose development
2023-08-22 11:48:44 +08:00
wancat 6ace18475b refactor: move client to sperate packages, rename cli to container 2023-08-21 20:40:05 +08:00
wancat 41a12c9aa8 feat: collect 2 level files info when ls
* change cli dir to /usr/local/lib/cli
* refactor cli to multiple files
* add handleCommand and listeners pattern
2023-08-21 20:40:05 +08:00
wancat 0de4b6ac9d feat: design game file and parse it to mongo
* 取消用 README 來寫關卡說明
2023-08-08 20:38:27 +08:00
wancat 6204bd0b17 feat: change to use Zsh
* show message from server response
* send output and error to server
2023-08-08 20:38:27 +08:00
wancat 0153eae673 feat: new cli client to send and receive msg from api 2023-08-08 20:38:27 +08:00
wancat c3030b22be feat: add mongo init script, use root in app image 2023-07-31 17:19:03 +08:00
wancat d997a061a9 feat: send command typed in container to API
- Modify the Dockerfile in the `server/quests/helloworld` directory to add a user and change the working directory
- Rename the file `server/quests/helloworld/entrypoint.sh` to `server/quests/helloworld/home/.bashrc`
- Modify the `server/src/config.js` file to add the `isProduction` flag
- Modify the `server/src/utils/docker.js` file to add a `HostConfig` option and bind a directory if not in production mode
- Modify the Dockerfile to add an argument `DOCKER_GID` and create a group and user with the specified `DOCKER_GID`
- Add a new Dockerfile.dev file with the same modifications as the Dockerfile
- Add a new file `inspect.sh`
- Modify the `server/src/client.js` file to use the `API_ENDPOINT` variable instead of a hardcoded URL

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-26 20:54:01 +08:00
wancat 88ed447573 fix: error handling
- Remove unnecessary try-catch block in createSession function
- Add error handling for missing session ID in socket.js
- Improve error handling in connectDB function
- Add error handling middleware for server errors
- Add default export for get function in env.js

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-25 15:46:59 +08:00
wancat 943c11714c feat: connect containers to custom network
- Export the `get` function in `utils/env.js`
- Change the Docker image in `docker.js` from `ubuntu` to `lancatlin/quest-helloworld`
- Remove the `createContainer` and `getContainer` functions from `docker.js`
- Add a `network` constant in `docker.js` that gets the Docker network from the config
- Connect the container to the network in `getOrCreateContainer` function in `docker.js`
- Add `API_ENDPOINT` environment variable in the `attachContainer` function in `docker.js`

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-25 15:42:07 +08:00
wancat 3cea54ce71 feat: add new API for recording executed commands
- Add the `jsonwebtoken` dependency to the server's `package.json`
- Add a new file `commandController.js` to the server's API controllers
- Add a new route `/commands` to the server's API routes
- Add a new file `commands.js` to the server's API routes
- Modify the `index.js` file in the server's API routes to import and use the `commands.js` route
- Add a `newCommand` function to the `commandController.js` file
- Add a `Command` model to the `command.js` file in the server's models
- Add the `genSessionJWT` and `verifySessionJWT` functions to the `auth.js` file in the server's utils
- Modify the `attachContainer` function in the `docker.js` file in the server's utils to include a `token` parameter
- Modify the `swagger.yaml` file to include a new route `/commands` for recording executed commands in a session

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-24 16:39:04 +08:00
wancat 95fc25d0ad feat: connect to different container by sessions
Based on the file summaries provided, the best label for this commit would be "feat". This is because the commit introduces several new features to the codebase, such as adding a new ESLint rule, adding a new property to a function, adding authentication middleware, adding a query parameter, and adding a new function to handle user authentication.: update authentication and session handling

- Add `"camelcase"` rule to ESLint configuration
- Add `containerId` property to the `newSession` object in the `createSession` function
- Add authentication middleware to the socket.io connection
- Add a query parameter `session_id` to the socket.io connection in `client.js`
- Add `defaultUser` function to handle user authentication
- Update the `authMiddleware` function to use the `defaultUser` function
- Add `defaultUser` function to handle user authentication in `auth.js`
- Update `getOrCreateContainer` function to use the `id` parameter instead of `name` parameter
2023-07-24 12:21:05 +08:00
wancat c83ca750e1 Connect to different shell 2023-07-22 16:35:44 +08:00
wancat 3e9e14399a Directly use folder name as _id in Quest 2023-07-20 16:25:10 +08:00
wancat 3637d41529 Load and update quests on startup 2023-07-20 15:08:47 +08:00
wancat b2173d180d Read all quest data in the folder 2023-07-19 20:01:14 +08:00
wancat d51a75e5bc Re-organize code 2023-07-18 20:33:08 +08:00