Commit Graph
100 Commits
Author SHA1 Message Date
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
Lin, Hung-Shin 9bdaa95bad Update CI/CD workflows (#66)
**BREAKING CHANGES:**
* Schema change: put user social logins to a `socialLogins` map
* Original users would migrate to new schema without problem (because
sharing the same email)
* Docker images are moved to a new account
[linuxodyssey](https://hub.docker.com/u/linuxodyssey)
* Images are separate to different repo: frontend, backend, analytics,
quest-base
  * Tags are only for versioning.

Major improvements:
* Deploy to production on releasing tags
* Deploy to staging on main branch pushes
* build docker images with versioning tags: `latest`, `main`, `v0.1.0`,
`pr-63`, etc.
* Add basic auth for admin dashboard. Specify username and password by
env.

Minor improvements:
* Upgrade code review bot to use GPT 4
* Centralize all user creation in `models/userManager.js`
* Update docker get image method, based on QUEST_PREFIX to generate the
image name
2023-11-19 15:10:23 +08:00
wancat 521cf46929 feat: add concurrency 2023-11-19 14:56:10 +08:00
wancat 2028075240 feat: setup admin env in prod compose 2023-11-19 14:51:36 +08:00
wancat 77cb555ae6 feat: add production deploy credentials 2023-11-19 14:36:56 +08:00
wancat f9e0fade3b fix: update quest image name 2023-11-18 22:25:05 +08:00
wancat aed66a4fe5 fix: analytics login method 2023-11-18 22:22:51 +08:00
wancat 1ab394f187 feat: add basic auth to analytics 2023-11-18 22:22:34 +08:00
wancat 8430ce4428 feat: add error handling for oauthVerify 2023-11-18 21:46:03 +08:00
wancat 8d0ec00536 fix: checkout code on building 2023-11-18 18:43:26 +08:00
wancat bf6aabb1c5 fix: passing docker hub secrets to build workflow 2023-11-18 18:37:29 +08:00
wancat 17277da171 fix: build cypress along with other images 2023-11-18 18:22:47 +08:00
wancat f81c96be62 fix: fix createUser without password 2023-11-18 18:22:27 +08:00
wancat d3945eeaa7 fix: change code review model to gpt 4 2023-11-18 18:12:03 +08:00
wancat 7d25c7efaa feat: update workflows
* build images with automatic tags
* separate staging and production deployment
* reuse workflows
2023-11-18 18:05:42 +08:00
wancat 81581c4635 BREAKING: change user social login schema 2023-11-18 16:29:37 +08:00
Lin, Hung-Shin 9e935b320a Feat build quests (#65)
Feat build quests
2023-11-17 15:16:34 +08:00
Lin, Hung-Shin 6735c9e9da Feat automation test (#63)
Add cypress automation tests

- Verify Login and Register UI
- Verify Game Starting UI
- Verify Game Play
- Add global commands: Login with Password, Prepare for Game, Type
Command, Wait until active, Check pending
- Add .sh file for entering command
- Add .env loading in config
- Removed login using Google and GitHub
2023-11-17 14:07:02 +08:00
wancat 0e3b3cca11 fix: remove tear down step 2023-11-17 13:57:56 +08:00
wancat 535fef247f fix: fix login failure by NODE_ENV=developement 2023-11-17 13:46:42 +08:00
Lin, Hung-Shin 8827446b71 fix: add longer timeout for getting xterm 2023-11-17 11:50:04 +08:00
Lin, Hung-Shin e6de58d2ee fix: include quests data in cypress image 2023-11-17 11:41:38 +08:00
Lin, Hung-Shin 387f577ae1 fix: rename setupTest 2023-11-17 11:41:33 +08:00
Lin, Hung-Shin 9193b9518a fix: handle frontend error 2023-11-17 11:41:09 +08:00
Lin, Hung-Shin ca057a657b feat: disable rate limits when testing 2023-11-17 11:27:48 +08:00
Lin, Hung-Shin d0c01fffa8 fix: enhance error handling in frontend 2023-11-17 11:18:14 +08:00
Lin, Hung-Shin 1f77328362 feat: add testing setup in backend 2023-11-17 10:59:47 +08:00
Lin, Hung-Shin cb376caff0 Merge branch 'main' into feat-automation-test 2023-11-17 09:43:26 +08:00
wancat c438756bde feat: update CI/CD work, compose, and README 2023-11-16 21:13:18 +08:00
wancat cd22988a49 feat: limit networking and memory during build 2023-11-16 21:11:32 +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 4d408333b7 Feat Multi-Quest support (#61) 2023-11-15 14:01:32 +08:00
wancat 92181d960f feat: check if a quest is unlocked before creating session 2023-11-14 10:45:24 +08:00
wancat c2dac8d385 fix: wrap all async controller with error handler
* add validations to newCommand
2023-11-14 10:45:24 +08:00
wancat 1af85651b8 fix: enhance error handling for frontend session 2023-11-14 10:45:24 +08:00
wancat d0e2a4125d feat: add vue-toastification for alerting 2023-11-14 10:45:24 +08:00
wancat 2d0fffc8f4 fix: update backend socket error handling 2023-11-14 10:44:52 +08:00
wancat 4ee88fe7ba feat: add requirements in quest list api 2023-11-14 10:44:52 +08:00
wancat f973982ec4 feat: use dynamic route to select quest (no error handling yet) 2023-11-14 10:44:52 +08:00
wancat cce6127d51 fix: allow optional value by removing noError in SessionList 2023-11-14 10:44:52 +08:00
wancat 1e728b413b fix: not reexport in default 2023-11-14 10:44:52 +08:00
wancat 5df4967a85 feat: delete "deleteSession" method, validate questId and sessionId 2023-11-14 10:44:52 +08:00
wancat a7422853fa feat: add /users/me endpoint 2023-11-14 10:44:52 +08:00
wancat ae221a696c fix: update repo url in package.json 2023-11-14 10:44:52 +08:00
wancat f49fb0e4da feat: finishSession and allow user command after finished 2023-11-14 10:44:52 +08:00
wancat 45f12acbd9 feat: add UserProfile collection, create on login
* add progress
2023-11-14 10:44:52 +08:00
Lin, Hung-Shin e981bff3bb feat: change base image to alpine 2023-11-14 10:44:52 +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 7d7ad154ab Fix re-login error (#60)
* refactor: put all session ref into one reactive store

* fix relogin duplicate signal

* fix: put quest data into store, fix hint reactivity

* fix: duplicate after relogin

* only register listener once
2023-11-08 14:22:08 +08:00
Lin, Hung-Shin 10e9d89349 Update deployment (#58)
* Update ci_cd.yml

Remove deployment scripts, moved to authorized_keys instead.

* Update docker-compose.prod.yml to always restart
2023-11-05 23:27:50 +08:00
Lin, Hung-Shin 4c2f3f5397 feat: put survey and bug report url to backend (#57)
* feat: put survey and bug report url to backend

* fix: centralize hardcoded url to config

* fix: validate url before redirecting
2023-11-03 21:32:12 +08:00
Lin, Hung-Shin 21f97c051c Fix: UI revise (#50)
* Change tailwind.config.js structure
* Fix line break error in QuestPart.vue
2023-11-03 15:06:56 +08:00
Lin, Hung-Shin 3664df68b6 feat: add bug report url 2023-11-03 15:01:14 +08:00
Lin, Hung-Shin c6c70a4285 Merge pull request #53 from linux-odyssey/dependabot/npm_and_yarn/postcss-8.4.31
build(deps-dev): bump postcss from 8.4.26 to 8.4.31
2023-11-02 14:19:56 +08:00
Lin, Hung-Shin 733ef50a0a Merge pull request #54 from linux-odyssey/dependabot/npm_and_yarn/babel/traverse-7.23.2
build(deps): bump @babel/traverse from 7.22.8 to 7.23.2
2023-11-02 14:19:11 +08:00
Lin, Hung-Shin b6101c3453 Update ci_cd.yml 2023-11-02 14:13:00 +08:00
Lin, Hung-Shin c4b30e3a21 Merge pull request #49 from linux-odyssey/quest
Fix: Improve quest 'helloworld'
2023-11-02 13:27:00 +08:00
Lin, Hung-Shin 3da809e107 Merge pull request #36 from linux-odyssey/security
Security
2023-11-02 13:24:57 +08:00
Lin, Hung-Shin 72aded98b1 feat: move out env from docker-compose.prod.yml 2023-11-02 12:39:25 +08:00
Lin, Hung-Shin 14043b3f12 feat: specify trust proxies 2023-11-02 12:11:15 +08:00
Lin, Hung-Shin a5896e7c15 feat: remove username length limit 2023-11-02 11:36:53 +08:00
Lin, Hung-Shin b09aa0debf feat: refactor frontend auth error handling 2023-11-02 11:36:42 +08:00
wancat bcb9f1f803 fix: update frontend error handling 2023-11-01 23:30:28 +08:00
wancat af672791a5 feat: add cypress test script 2023-11-01 23:17:48 +08:00
wancat a5526d2dcf feat: setup default secretKey for development 2023-11-01 23:14:16 +08:00
wancat c008f82cb0 fix: container removal, no secretKey panic 2023-11-01 23:09:39 +08:00
wancat d4000eb5a6 feat: add validation before creating session 2023-11-01 22:59:32 +08:00
wancat bcfdf15559 feat: add error handling for choose username 2023-11-01 22:44:32 +08:00
wancat f65b72c5b4 feat: add rate limit for authentication
* improve error handling in frontend
2023-11-01 22:11:17 +08:00
wancat 203114cd5e feat: add validation for login 2023-11-01 21:35:25 +08:00
wancat fc6ac11c60 feat: complete register validation
* add password policy in frontend
2023-11-01 21:02:01 +08:00
Lin, Hung-Shin 1c9d69a8e0 feat: add validators for username, email, password
* not passed yet
2023-11-01 15:02:30 +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
wancat b9a79eb435 feat: add get ip endpoint
* rename handler
* change rate limit
2023-10-31 00:27:06 +08:00
wancat 3b9ea9ea50 feat: setup proxy and x-forwarded-for header 2023-10-31 00:15:39 +08:00
wancat c10b05c401 feat: add global and session rate limit 2023-10-30 23:46:39 +08:00
wancat 252781477a feat: socket error handling
* create a new session when failed to connect to socket
* reset termnal on connect
2023-10-30 23:31:58 +08:00
wancat 9c3c6adb16 refactor: centralize all variable to sessionManager 2023-10-30 23:12:50 +08:00
wancat 5a7c4da628 refactor: add getOrCreateSession to simplify process 2023-10-30 22:43:27 +08:00
wancat 11bc793b12 refactor: separate createSession to sessionManager 2023-10-30 22:10:25 +08:00
Lin, Hung-Shin 7843020524 feat: disable global network in player containers 2023-10-30 21:28:10 +08:00
Lin, Hung-Shin f8254b55c9 Merge pull request #45 from linux-odyssey/quest
Add new functions for quest:

* new condition logic `or` & `not`: able to create nested condition
* new condition `files`: checks if a file or folder exists in the container
  * not support globbing yet
* send "pending" status when executing story, and set it back after execution
* include completed stage id in command

Dockerfile refactor:
* use multi-staged building
* remove Dockerfile.dev

Container:

* use axios instead of `fetch`

Other improvements:

* deactivate other sessions when creating a new one
* clear terminal on reset
2023-10-30 14:42:34 +08:00
Lin, Hung-Shin 51bf06e2a7 feat: remove wait for enter in dialogue 2023-10-30 14:21:52 +08:00
Lin, Hung-Shin 8782048334 Merge remote-tracking branch 'origin/quest' into quest 2023-10-30 14:00:07 +08:00
Lin, Hung-Shin 8a0512aac8 feat: clear terminal on reset
* TODO: have some trailing
2023-10-30 13:58:33 +08:00
Lin, Hung-Shin 0392fe9a65 refactor: separate Terminal instance 2023-10-30 13:55:10 +08:00
Lin, Hung-Shin 67c420d69e Merge pull request #48 from linux-odyssey/ui-revise
Fix: Fixed error message color
2023-10-30 13:50:07 +08:00
Lin, Hung-Shin 2285192eac feat: delete previous container on session creation 2023-10-30 13:31:59 +08:00
wancat 96678a45c3 feat: remove $ from condition field name 2023-10-29 17:42:31 +08:00
wancat 917083ad30 fix: remove debugging console log 2023-10-29 17:42:31 +08:00
wancat 40b6d3cd86 feat: remove testing stages 2023-10-29 17:42:31 +08:00
wancat d724f97403 feat: add pending signal to status 2023-10-29 17:42:31 +08:00
wancat aec0cf84ad feat: include complete stage name in command 2023-10-29 17:41:38 +08:00
wancat 8f22babe7d feat: sanitize file checks 2023-10-29 17:41:38 +08:00
Lin, Hung-Shin 50b1fe5124 feat: execute files check via docker cli
WARNING: possible command injection vunerability.
2023-10-29 17:41:38 +08:00
Lin, Hung-Shin 38f3dbcd65 feat: install docker cli in backend
* change the copy order to improve performance
2023-10-29 17:41:38 +08:00