Commit Graph
218 Commits
Author SHA1 Message Date
Lin, Hung-Shin f5c465ab69 feat: add login & signup flow 2023-09-14 18:54:40 +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
Lin, Hung-Shin 49417c405a feat: add login in frontend
* extract icon library from main.js
* extract router from main.js
* failure with error in passport
* add example to swagger
2023-09-13 14:02:28 +08:00
wancat b55b7aa1ec feat: add register, checkUsername, update swagger 2023-09-12 23:01:49 +08:00
wancat 04a0b21cf6 fix: session response payload 2023-09-12 00:12:22 +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 0ea44e1f71 feat: add initial task on session creation 2023-09-01 17:16:32 +08:00
wancat 97b0fb0f1d refactor: seperate SessionHandler from commandHandler 2023-09-01 15:25:18 +08:00
wancat dd7829b3e9 feat: combine task with stage 2023-09-01 14:56:28 +08:00
wancat de8d49aea3 fix: change jwt expiry time to config
* rename dockerfile env
2023-09-01 13:54:51 +08:00
wancat 8b5f7175a7 fix: error handling of container failures 2023-09-01 13:49:00 +08:00
wancat 99da610d9e feat: exit shell on disconnect 2023-08-30 19:52:40 +08:00
wancat e16b328892 feat: refactor stage to multiple route design 2023-08-30 18:05:11 +08:00
wancat 3dae9e8552 feat: store graph in session manager 2023-08-29 14:28:09 +08:00
wancat ee7cd083bd feat: handle discover in server 2023-08-29 13:28:18 +08:00
wancat 3b8264e39e refactor: refactor commandHandler to class 2023-08-29 12:08:36 +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 54e0689d30 fix: remove mounting at production error 2023-08-26 11:11:13 +08:00
wancat 3f50b99d1a fix: not to use 'force' in container deletion 2023-08-24 11:36:24 +08:00
wancat 27f8525585 fix: add missing "error" field in command 2023-08-24 11:35:43 +08:00
wancat ad3dd2fb18 fix: default retrieve active session
+ typo 'deactive' -> 'inactive',
2023-08-23 12:27:20 +08:00
wancat 22060070b9 feat: add session expiry deletion script and scheduler 2023-08-23 12:22:15 +08:00
wancat 8e63284211 feat: seperate container creation and get 2023-08-23 11:51:16 +08:00
wancat 2c866d2e83 feat: add status, lastActivityAt column to session 2023-08-23 11:50:49 +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 f08ee333a7 feat: push new pwd when 'cd' 2023-08-21 20:40:05 +08:00
wancat 096b7a7714 feat: push discover event to frontend 2023-08-21 20:40:05 +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 a151d2d667 feat: add type and color to response 2023-08-09 21:14:57 +08:00
wancat 5cad3ecc12 fix: mark progress to stage.next directly 2023-08-08 20:38:27 +08:00
wancat a73aa8b461 fix: prevent execute command twice 2023-08-08 20:38:27 +08:00
wancat 6f368f761e feat: add hints to session, update API 2023-08-08 20:38:27 +08:00
wancat 094332da53 feat: add commandHandler 2023-08-08 20:38:27 +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 06ee53f194 fix: send string 2023-08-08 20:36:49 +08:00
wancat c3030b22be feat: add mongo init script, use root in app image 2023-07-31 17:19:03 +08:00
wancat ec90c484b4 feat: add parameters and subcommand to client.js
- Added `"commander": "^11.0.0"` as a dependency in the `package.json` file
- Added an `import { program } from 'commander'` statement in the `client.js` file
- Modified the `createdSession` function in the `client.js` file to use `program.opts().host` instead of `API_ENDPOINT`
- Added a `getSessionList` function in the `client.js` file to fetch the list of sessions
- Added a `lastSession` function in the `client.js` file to get the last session from the session list
- Added a `connect` function in the `client.js` file to establish a socket connection
- Modified the `main` function in the `client.js` file to use `program.opts().session` instead of `process.argv[2]` to get the session ID
- Modified the `main` function in the `client.js` file to use `program.opts().host` instead of `API_ENDPOINT` to initialize the socket connection
- Added a `program` object with options and actions in the `client.js` file
- Added `.bash_history` to the `.gitignore` file
- Added `.viminfo` to the `.gitignore` file
- Added `*.swp` to the `.gitignore` file

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-31 15:42:58 +08:00
wancat b9643e7d5c feat: capture output and exit code of commands
+ ignore interactive commands like vim, top or nano
2023-07-27 17:56:32 +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 9376e16f72 Success to send command to api
+ require sourcing entrypoint.sh manually
2023-07-26 00:12:10 +08:00
wancat 9f74a80551 feat: refactor session management and API usage
- Add an import statement for the `get` function from `./utils/env.js`
- Add a constant for `API_ENDPOINT` using the `get` function
- Remove the `sessionId` constant declaration
- Add an `async` function `getSessionId` for fetching session ID
- Add an `async` function `main` for the main program logic
- Initialize `sessionId` using the command line argument or by calling `getSessionId`
- Add a console log statement for the session ID
- Remove the `if` statement for checking `sessionId` existence
- Update the socket URL to use `API_ENDPOINT`
- Add a `socket.on` event listener for the `close` event
- Update the condition for checking the `key` value in `stdin.on` event listener
- Call the `main` function at the end of the file

Signed-off-by: wancat <wancat@wancat.cc>
2023-07-25 15:56:51 +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