diff --git a/.github/workflows/build-deploy-by-pull-request.yml b/.github/workflows/build-deploy-by-pull-request.yml index 5bede8e..77eb79d 100644 --- a/.github/workflows/build-deploy-by-pull-request.yml +++ b/.github/workflows/build-deploy-by-pull-request.yml @@ -36,14 +36,14 @@ jobs: HOST=$(printf "pr-%s.%s" ${{ github.event.number }} ${{ vars.HOST }}) IMAGE_TAG=$(printf "pr-%s" ${{ github.event.number }}) DB_PORT=$(printf "%d" $(expr 20000 + $PULL_REQUEST_NUMBER)) - DB_NAME=$(printf "simbolik-db-pr-%s" $PULL_REQUEST_NUMBER) + DB_NAME=$(printf "kasmer-db-pr-%s" $PULL_REQUEST_NUMBER) echo "HOST=$HOST" >> $GITHUB_OUTPUT echo "DB_PORT=$DB_PORT" >> $GITHUB_OUTPUT echo "DB_NAME=$DB_NAME" >> $GITHUB_OUTPUT echo "FRONTEND_PORT=$FRONTEND_PORT" >> $GITHUB_OUTPUT echo "BACKEND_PORT=$BACKEND_PORT" >> $GITHUB_OUTPUT echo "HOST=$HOST" >> $GITHUB_OUTPUT - echo "IMAGE_PREFIX=ghcr.io/runtimeverification/simbolik" >> $GITHUB_OUTPUT + echo "IMAGE_PREFIX=ghcr.io/runtimeverification/kasmer" >> $GITHUB_OUTPUT echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_OUTPUT EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64) nginx_main_config="$(cat ${{ github.workspace }}/configs/nginx/nginx.conf)" @@ -102,8 +102,8 @@ jobs: script: | source "/home/ubuntu/.acme.sh/acme.sh.env" PULL_REQUEST_NAME=$(printf "pr-%s" ${{ github.event.number }}) - mkdir -p ~/opt/deployments/simbolik-$PULL_REQUEST_NAME - cd ~/opt/deployments/simbolik-$PULL_REQUEST_NAME + mkdir -p ~/opt/deployments/kasmer-$PULL_REQUEST_NAME + cd ~/opt/deployments/kasmer-$PULL_REQUEST_NAME # Frontend docker pull ${{ needs.build.outputs.IMAGE_PREFIX }}/frontend:$PULL_REQUEST_NAME @@ -145,7 +145,7 @@ jobs: --name kasmer-backend-$PULL_REQUEST_NAME \ -d --restart=always \ --network=${{ needs.build.outputs.DB_NAME }} \ - -e DATABASE_URL="postgresql://${{ secrets.DB_USER }}:${{ secrets.DB_PASSWORD }}@${{ needs.build.outputs.DB_NAME }}/simbolik?schema=$PULL_REQUEST_NAME&connection_limit=40&pool_timeout=30" \ + -e DATABASE_URL="postgresql://${{ secrets.DB_USER }}:${{ secrets.DB_PASSWORD }}@${{ needs.build.outputs.DB_NAME }}/postgres?schema=$PULL_REQUEST_NAME&connection_limit=40&pool_timeout=30" \ -e FRONTEND_URL=https://${{ needs.build.outputs.HOST }} \ -e GITHUB_CLIENT_ID=${{ secrets.GH_CLIENT_ID }} \ -e GITHUB_CLIENT_SECRET=${{ secrets.GH_CLIENT_SECRET }} \ @@ -154,8 +154,8 @@ jobs: -e GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} \ -e GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} \ -e GOOGLE_CALLBACK_HOST=${{ needs.build.outputs.HOST }} \ - -e EMAIL_HOST=${{ vars.EMAIL_HOST }} \ - -e EMAIL_USER=${{ vars.EMAIL_USER }} \ + -e EMAIL_HOST=${{ secrets.EMAIL_HOST }} \ + -e EMAIL_USER=${{ secrets.EMAIL_USER }} \ -e BRANCH_NAME=$PULL_REQUEST_NAME \ -e EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} \ -e JWT_SECRET=${{ secrets.JWT_SECRET }} \ @@ -263,6 +263,6 @@ jobs: uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: ${{ github.repository_owner }} - name: kasmer/frontend + name: kasmer/web token: ${{ secrets.GITHUB_TOKEN }} untagged-keep-latest: 1 diff --git a/.github/workflows/build-deploy-by-push-action.yml b/.github/workflows/build-deploy-by-push-action.yml index 0b445cc..c693b0b 100644 --- a/.github/workflows/build-deploy-by-push-action.yml +++ b/.github/workflows/build-deploy-by-push-action.yml @@ -113,7 +113,7 @@ jobs: ${{ needs.build.outputs.FRONTEND_IMAGE_URL }} # Backend - DATABASE_URL=$(printf "postgresql://%s:%s@%s/%s/simbolik?schema=${{ github.ref_name }}&connection_limit=40&pool_timeout=30" \ + DATABASE_URL=$(printf "postgresql://%s:%s@%s/%s/kasmer?schema=${{ github.ref_name }}&connection_limit=40&pool_timeout=30" \ ${{ secrets.DB_USER }} \ ${{ secrets.DB_PASSWORD }} \ ${{ secrets.DB_HOST_PORT }} \ @@ -136,8 +136,8 @@ jobs: -e GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} \ -e GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} \ -e GOOGLE_CALLBACK_HOST=${{ needs.build.outputs.HOST }} \ - -e EMAIL_HOST=${{ vars.EMAIL_HOST }} \ - -e EMAIL_USER=${{ vars.EMAIL_USER }} \ + -e EMAIL_HOST=${{ secrets.EMAIL_HOST }} \ + -e EMAIL_USER=${{ secrets.EMAIL_USER }} \ -e BRANCH_NAME=${{ github.ref_name }} \ -e EMAIL_PASSWORD=${{ secrets.EMAIL_PASSWORD }} \ -e JWT_SECRET=${{ secrets.JWT_SECRET }} \ @@ -245,6 +245,6 @@ jobs: uses: bots-house/ghcr-delete-image-action@v1.1.0 with: owner: ${{ github.repository_owner }} - name: kasmer/frontend + name: kasmer/web token: ${{ secrets.GITHUB_TOKEN }} untagged-keep-latest: 1 diff --git a/.github/workflows/close-pull-request.yml b/.github/workflows/close-pull-request.yml index 00f9d81..02b87cf 100644 --- a/.github/workflows/close-pull-request.yml +++ b/.github/workflows/close-pull-request.yml @@ -1,13 +1,13 @@ name: "Close Pull Request" on: pull_request: - types: [closed] + types: [ closed ] concurrency: group: ${{ github.event.number }} jobs: close-pull-request: - runs-on: [self-hosted, linux, normal] + runs-on: [ self-hosted, linux, normal ] environment: develop steps: # - name: Get GitHub payload @@ -22,7 +22,7 @@ jobs: FRONTEND_PORT=$(printf "%d" $(expr 9000 + $PULL_REQUEST_NUMBER)) BACKEND_PORT=$(printf "%d" $(expr 10000 + $PULL_REQUEST_NUMBER)) HOST=$(printf "pr-%s.%s" ${{ github.event.number }} ${{ vars.HOST }}) - echo "IMAGE_PREFIX=ghcr.io/runtimeverification/simbolik" >> $GITHUB_OUTPUT + echo "IMAGE_PREFIX=ghcr.io/runtimeverification/kasmer" >> $GITHUB_OUTPUT echo "FRONTEND_PORT=$FRONTEND_PORT" >> $GITHUB_OUTPUT echo "BACKEND_PORT=$BACKEND_PORT" >> $GITHUB_OUTPUT echo "HOST=$HOST" >> $GITHUB_OUTPUT @@ -52,8 +52,8 @@ jobs: docker image rm ${{ steps.process-outputs.outputs.IMAGE_PREFIX }}/backend:$PULL_REQUEST_NAME docker image prune -f cleanup: - runs-on: [self-hosted, linux, flyweight] - needs: [close-pull-request] + runs-on: [ self-hosted, linux, flyweight ] + needs: [ close-pull-request ] if: always() steps: - name: Clean PR backend image diff --git a/backend/sample.env b/backend/sample.env index 2d01386..b2fe48d 100644 --- a/backend/sample.env +++ b/backend/sample.env @@ -13,8 +13,8 @@ POSTGRES_USER=some_user POSTGRES_PASSWORD=some_password # Postgres connection string. -# "simbolik" is the name of the database. See https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING. -DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/simbolik?schema=${BRANCH_NAME}&connection_limit=40&pool_timeout=30 +# "kasmer" is the name of the database. See https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING. +DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/postgres?schema=${BRANCH_NAME}&connection_limit=40&pool_timeout=30 # Password to encrypt the JWT tokens @@ -41,7 +41,7 @@ GOOGLE_CLIENT_SECRET=xxxx # The client secret of the Google OAuth app. # The key below is for local development: RECAPTCHA_SECRET_KEY=6Ld9pOUjAAAAAGIDO3K3KSrYomGt4ty0SXRpCHTz -GITHUB_WORKFLOW_TRIGGER_TOKEN=xxxx # The rv-auditor GitHub token. Used to dispatch the GitHub workflow in runtimeverification/simbolik repository. +GITHUB_WORKFLOW_TRIGGER_TOKEN=xxxx # The rv-auditor GitHub token. Used to dispatch the GitHub workflow in runtimeverification/kasmer repository. # SMTP server configuration. EMAIL_HOST=smtp.google.com diff --git a/backend/src/config/configuration.ts b/backend/src/config/configuration.ts index 0ac4b61..bd8383c 100644 --- a/backend/src/config/configuration.ts +++ b/backend/src/config/configuration.ts @@ -11,7 +11,7 @@ export default () => ({ GITHUB_CLIENT_SECRET: process.env.GITHUB_CLIENT_SECRET, GOOGLE_CALLBACK_HOST: - process.env.GOOGLE_CALLBACK_HOST || 'simbolik.runtimeverification.com', + process.env.GOOGLE_CALLBACK_HOST || 'kasmer.runtimeverification.com', GOOGLE_CALLBACK_EXTRA: process.env.GOOGLE_CALLBACK_EXTRA || '', GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET, diff --git a/backend/src/github/github.service.ts b/backend/src/github/github.service.ts index 65f14af..2e33de7 100644 --- a/backend/src/github/github.service.ts +++ b/backend/src/github/github.service.ts @@ -126,31 +126,39 @@ ${description} async postFeedback(createFeedbackInput: CreateFeedbackInput) { const branchName = this.configService.get('BRANCH_NAME'); - let issueNumber = 16; // master - if (branchName === 'master') { - issueNumber = 16; - } else if (branchName === 'develop' || /^pr-/i.test(branchName ?? '')) { - issueNumber = 15; // develop or PRs - } else { - issueNumber = 14; - } - // TODO: refactor the code. move Magic string -> Confing - try { + const PROD_ISSUE_NUMBER = 6; + const DEV_ISSUE_NUMBER = 5; + const TEST_ISSUE_NUMBER = 4; + let issueNumber: number; - return this.octokit.request( - 'POST /repos/{owner}/{repo}/issues/{issue_number}/comments', - { - owner: 'runtimeverification', - repo: 'simbolik', - issue_number: issueNumber, - body: this.feedBackInputToMdAdapter(createFeedbackInput), - }, - ); + switch (branchName) { + case 'master': + issueNumber = PROD_ISSUE_NUMBER; + break; + case 'develop': + issueNumber = DEV_ISSUE_NUMBER; + break; + default: + issueNumber = /^pr-/i.test(branchName ?? '') + ? DEV_ISSUE_NUMBER + : TEST_ISSUE_NUMBER; + break; + } + try { + return await this.octokit.request( + 'POST /repos/{owner}/{repo}/issues/{issue_number}/comments', + { + owner: 'runtimeverification', + repo: 'kasmer', + issue_number: issueNumber, + body: this.feedBackInputToMdAdapter(createFeedbackInput), + }, + ); } catch (e) { - console.log(e); + console.error(e); return false; } } diff --git a/backend/src/graphql/graphql.service.ts b/backend/src/graphql/graphql.service.ts index a5f8abf..86a42e8 100644 --- a/backend/src/graphql/graphql.service.ts +++ b/backend/src/graphql/graphql.service.ts @@ -23,7 +23,7 @@ export class GqlOptionsService implements GqlOptionsFactory { return { driver: ApolloDriver, debug: process.env.NODE_ENV !== 'production', - playground: { title: 'simbolik GraphQL Playground' }, + playground: { title: 'kasmer GraphQL Playground' }, subscriptions: { 'graphql-ws': this.subscriptionConfig, 'subscriptions-transport-ws': this.subscriptionConfig, diff --git a/frontend/components/HeadWithMetas.tsx b/frontend/components/HeadWithMetas.tsx index c6c25ea..370d4d0 100644 --- a/frontend/components/HeadWithMetas.tsx +++ b/frontend/components/HeadWithMetas.tsx @@ -13,7 +13,7 @@ interface Props { } export const defaultMetaKeywords = - 'Simbolik, ERC-20, ERC20, ERC-721, ERC721, ERC-777, ERC777, ERC-1155, ERC1155, ERC-4626, ERC4626, ERC-3668, ERC3668, ERC conformance, ERC testing, ERC token, ERC contracts, ERC development, ERC standards, ERC compliance, Ethereum Request for Comments'; + 'kasmer, ERC-20, ERC20, ERC-721, ERC721, ERC-777, ERC777, ERC-1155, ERC1155, ERC-4626, ERC4626, ERC-3668, ERC3668, ERC conformance, ERC testing, ERC token, ERC contracts, ERC development, ERC standards, ERC compliance, Ethereum Request for Comments'; export default function HeadWithMetas({ title, @@ -25,11 +25,11 @@ export default function HeadWithMetas({ preventRobotCrawler }: Props) { const canonicalUrl = process.env.NEXT_PUBLIC_SITE_URL + useRouter().asPath; - const defaultTitle = 'Simbolik | Runtime Verification'; + const defaultTitle = 'kasmer | Runtime Verification'; const defaultDescription = 'ERC token development, testing, compliance, and conformance for ERC smart contracts from the Kasmer developers at Runtime Verification.'; const defaultOgImage = - process.env.NEXT_PUBLIC_SITE_URL + '/assets/img/simbolik-logo.png'; + process.env.NEXT_PUBLIC_SITE_URL + '/assets/img/kasmer-logo.png'; return ( @@ -86,7 +86,7 @@ export default function HeadWithMetas({ /> {extraElements} diff --git a/frontend/components/Header/Header.tsx b/frontend/components/Header/Header.tsx index 35e9115..45a0c89 100644 --- a/frontend/components/Header/Header.tsx +++ b/frontend/components/Header/Header.tsx @@ -6,16 +6,8 @@ import Icon from '@mdi/react'; import { mdiClose, mdiMenu } from '@mdi/js'; import { useRouter } from 'next/router'; import { navigation } from '@/constants/naviagation'; -import UserMenu from '@/components/Header/UserMenu'; -import GuestMenu from '@/components/Header/GuestMenu'; import AuthContainer from '@/containers/auth'; import { containerWrapper } from '@/constants/sharedStyles'; -import { - ACCOUNT_URL, - ADMIN_URL, - LOGIN_WITH_GITHUB_URL, - LOGIN_WITH_GOOGLE_URL -} from '@/constants/routing'; import { removeAuth } from '@/lib/auth'; import { KASMER_LOGO_SRC } from '@/constants/sources'; @@ -81,40 +73,6 @@ export default function Header() { ); })} - {/* Profile dropdown */} -
-
- -
    - {authContainer.isLoggedin ? ( - - ) : ( - - )} -
-
-
@@ -141,53 +99,6 @@ export default function Header() { ); })} - - {authContainer.isLoggedin ? ( - <> - - Settings - - - {isAdmin && ( - - Admin - - )} - - - Sign out - - - ) : ( - <> - - Log In with GitHub - - - Log In with Google - - - )} diff --git a/frontend/next-sitemap.config.js b/frontend/next-sitemap.config.js index 1b1a993..a2c8018 100644 --- a/frontend/next-sitemap.config.js +++ b/frontend/next-sitemap.config.js @@ -1,6 +1,7 @@ module.exports = { siteUrl: - process.env.NEXT_PUBLIC_SITE_URL || 'https://simbolik.runtimeverification.com', + process.env.NEXT_PUBLIC_SITE_URL || + 'https://kasmer.runtimeverification.com', generateRobotsTxt: true, exclude: ['/account', '/access-token'] }; diff --git a/frontend/pages/access-token.tsx b/frontend/pages/access-token.tsx deleted file mode 100644 index c273df0..0000000 --- a/frontend/pages/access-token.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import Container from '@/components/Container'; -import { useRouter } from 'next/router'; -import { useEffect } from 'react'; - -/** - * Load search params `token` and save it to local storage - */ -export default function AccessTokenPage() { - const { token } = useRouter().query; - const router = useRouter(); - - useEffect(() => { - if (!token) { - return; - } - - localStorage.setItem('token', token as string); - router.push('/account'); - }, [token]); - - return ( - -
Redirecting...
-
- ); -} diff --git a/frontend/pages/account.tsx b/frontend/pages/account.tsx deleted file mode 100644 index 89a0062..0000000 --- a/frontend/pages/account.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import RequireAuth from '@/containers/RequireAuth'; -import AccountPage from '@/components/Account'; - -export default function Account() { - return ( - - - - ); -} diff --git a/frontend/pages/admin.tsx b/frontend/pages/admin.tsx deleted file mode 100644 index de6e9d3..0000000 --- a/frontend/pages/admin.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import RequireAuth from '@/containers/RequireAuth'; -import Admin from '@/components/Admin'; - -const AdminIndex = () => { - return ( - - - - ); -}; - -export default AdminIndex;