From f99c3c5cc3c977a8baf107fae6133240c0fc9ba6 Mon Sep 17 00:00:00 2001 From: LoneRifle Date: Tue, 27 Feb 2024 11:28:21 +0800 Subject: [PATCH] feat: reset mongodb every 3h --- .github/workflows/reset-data.yml | 26 ++++++++++++++++++++++++++ bin/reset-db.mongodb.js | 20 ++++++++++++++++++++ fly.toml | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/reset-data.yml create mode 100644 bin/reset-db.mongodb.js diff --git a/.github/workflows/reset-data.yml b/.github/workflows/reset-data.yml new file mode 100644 index 0000000..94023f8 --- /dev/null +++ b/.github/workflows/reset-data.yml @@ -0,0 +1,26 @@ +name: Reset data + +on: + workflow_dispatch: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '0 */3 * * *' +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout this repo + uses: actions/checkout@v4 + - name: 🍃 Install mongosh + run: | + sudo apt-get update + sudo apt-get install -y wget gnupg + wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - + echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list + sudo apt-get update + sudo apt-get install -y mongodb-mongosh + - name: Reset mongo + env: + DB_URI: ${{ secrets.DB_URI }} + run: | + mongosh -f bin/reset-db.mongodb.js $DB_URI diff --git a/bin/reset-db.mongodb.js b/bin/reset-db.mongodb.js new file mode 100644 index 0000000..171d6c4 --- /dev/null +++ b/bin/reset-db.mongodb.js @@ -0,0 +1,20 @@ +/* eslint-disable */ + +db.adminFeedback.deleteMany({ }) +db.adminverifications.deleteMany({ }) +db.payments.deleteMany({ }) +db.myinfohashes.deleteMany({ }) +db.smscounts.deleteMany({ }) +db.tokens.deleteMany({ }) +db.verifications.deleteMany({ }) +db.formIssue.deleteMany({ }) +db.formfeedback.deleteMany({ }) +db.bounces.deleteMany({ }) +db.pendingsubmissions.deleteMany({ }) +db.logins.deleteMany({ }) +db.submissions.deleteMany({ }) +db.forms.deleteMany({ }) +db.workspaces.deleteMany({ }) +db.featureflags.deleteMany({ }) + +// Leave agencies, users and sessions alone, to ensure users can remain logged in diff --git a/fly.toml b/fly.toml index b235068..11a02a5 100644 --- a/fly.toml +++ b/fly.toml @@ -13,7 +13,7 @@ swap_size_mb = 1024 APP_URL = "https://form.demos.sg" FE_APP_URL = "https://form.demos.sg" IS_GENERAL_MAINTENANCE = "warn:DO NOT GIVE YOUR PERSONAL INFORMATION. This platform is a demo of FormSG for evaluation purposes only." - ADMIN_BANNER_CONTENT = 'This platform is a demo of FormSG for evaluation purposes only. For enquiries, visit https://form.gov.sg' + ADMIN_BANNER_CONTENT = 'This platform is a demo of FormSG for evaluation purposes only. Data resets every 3 hours starting from 00:00 UTC. For enquiries, visit https://form.gov.sg' IS_LOGIN_BANNER = 'This platform is a demo of FormSG for evaluation purposes only. For enquiries, visit https://form.gov.sg' # S3 Bucket config