From 2d8919a0799d6b8bfecfee7ef32920c47f557cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Fri, 24 Feb 2023 08:14:17 +0100 Subject: [PATCH] chore: remove proxy service --- .github/workflows/proxy.yml | 22 ----- packages/api-gateway/bin/server.ts | 1 - .../src/Controller/v1/ProxyController.ts | 18 ---- packages/proxy/.eslintignore | 1 - packages/proxy/.eslintrc | 6 -- packages/proxy/CHANGELOG.md | 40 -------- packages/proxy/Dockerfile | 17 ---- packages/proxy/bin/server.ts | 91 ------------------- packages/proxy/docker/entrypoint-server.js | 11 --- packages/proxy/docker/entrypoint.sh | 17 ---- packages/proxy/linter.tsconfig.json | 4 - packages/proxy/package.json | 32 ------- packages/proxy/tsconfig.json | 11 --- tsconfig.json | 3 - 14 files changed, 274 deletions(-) delete mode 100644 .github/workflows/proxy.yml delete mode 100644 packages/api-gateway/src/Controller/v1/ProxyController.ts delete mode 100644 packages/proxy/.eslintignore delete mode 100644 packages/proxy/.eslintrc delete mode 100644 packages/proxy/CHANGELOG.md delete mode 100644 packages/proxy/Dockerfile delete mode 100644 packages/proxy/bin/server.ts delete mode 100644 packages/proxy/docker/entrypoint-server.js delete mode 100755 packages/proxy/docker/entrypoint.sh delete mode 100644 packages/proxy/linter.tsconfig.json delete mode 100644 packages/proxy/package.json delete mode 100644 packages/proxy/tsconfig.json diff --git a/.github/workflows/proxy.yml b/.github/workflows/proxy.yml deleted file mode 100644 index b7c1b4063..000000000 --- a/.github/workflows/proxy.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Proxy Server - -concurrency: - group: proxy_server - cancel-in-progress: true - -on: - push: - tags: - - '*standardnotes/proxy-server*' - workflow_dispatch: - -jobs: - call_server_application_workflow: - name: Server Application - uses: standardnotes/server/.github/workflows/common-server-application.yml@main - with: - service_name: proxy - workspace_name: "@standardnotes/proxy-server" - deploy_worker: false - package_path: packages/proxy - secrets: inherit diff --git a/packages/api-gateway/bin/server.ts b/packages/api-gateway/bin/server.ts index cc5f61354..0180472b2 100644 --- a/packages/api-gateway/bin/server.ts +++ b/packages/api-gateway/bin/server.ts @@ -20,7 +20,6 @@ import '../src/Controller/v1/OfflineController' import '../src/Controller/v1/FilesController' import '../src/Controller/v1/SubscriptionInvitesController' import '../src/Controller/v1/AuthenticatorsController' -import '../src/Controller/v1/ProxyController' import '../src/Controller/v2/PaymentsControllerV2' import '../src/Controller/v2/ActionsControllerV2' diff --git a/packages/api-gateway/src/Controller/v1/ProxyController.ts b/packages/api-gateway/src/Controller/v1/ProxyController.ts deleted file mode 100644 index 0a90981a7..000000000 --- a/packages/api-gateway/src/Controller/v1/ProxyController.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Request, Response } from 'express' -import { inject } from 'inversify' -import { all, BaseHttpController, controller } from 'inversify-express-utils' - -import TYPES from '../../Bootstrap/Types' -import { HttpServiceInterface } from '../../Service/Http/HttpServiceInterface' - -@controller('/v1/proxy') -export class ProxyController extends BaseHttpController { - constructor(@inject(TYPES.HTTPService) private httpService: HttpServiceInterface) { - super() - } - - @all('*', TYPES.AuthMiddleware) - async createToken(request: Request, response: Response): Promise { - await this.httpService.callProxyServer(request, response, request.path.replace('/v1/proxy', ''), request.body) - } -} diff --git a/packages/proxy/.eslintignore b/packages/proxy/.eslintignore deleted file mode 100644 index 1521c8b76..000000000 --- a/packages/proxy/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist diff --git a/packages/proxy/.eslintrc b/packages/proxy/.eslintrc deleted file mode 100644 index cb7136174..000000000 --- a/packages/proxy/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../.eslintrc", - "parserOptions": { - "project": "./linter.tsconfig.json" - } -} diff --git a/packages/proxy/CHANGELOG.md b/packages/proxy/CHANGELOG.md deleted file mode 100644 index 19f33a429..000000000 --- a/packages/proxy/CHANGELOG.md +++ /dev/null @@ -1,40 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [1.1.6](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.5...@standardnotes/proxy-server@1.1.6) (2023-02-23) - -### Bug Fixes - -* **proxy:** make healthcheck endpoint accessible at all times ([b1122a3](https://github.com/standardnotes/server/commit/b1122a3da5d0fe02b80b91da5e96cffbad994ce2)) - -## [1.1.5](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.4...@standardnotes/proxy-server@1.1.5) (2023-02-22) - -**Note:** Version bump only for package @standardnotes/proxy-server - -## [1.1.4](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.3...@standardnotes/proxy-server@1.1.4) (2023-02-22) - -**Note:** Version bump only for package @standardnotes/proxy-server - -## [1.1.3](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.2...@standardnotes/proxy-server@1.1.3) (2023-02-22) - -**Note:** Version bump only for package @standardnotes/proxy-server - -## [1.1.2](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.1...@standardnotes/proxy-server@1.1.2) (2023-02-22) - -**Note:** Version bump only for package @standardnotes/proxy-server - -## [1.1.1](https://github.com/standardnotes/server/compare/@standardnotes/proxy-server@1.1.0...@standardnotes/proxy-server@1.1.1) (2023-02-22) - -**Note:** Version bump only for package @standardnotes/proxy-server - -# 1.1.0 (2023-02-22) - -### Bug Fixes - -* **proxy:** prevent from passing auth tokens to proxy destination ([91c70a5](https://github.com/standardnotes/server/commit/91c70a51a067c606afc3570764367a6d60910ce3)) - -### Features - -* **proxy:** add proxy server ([dfe30d7](https://github.com/standardnotes/server/commit/dfe30d7f5e8598ec1886db0e061b7d593cc27e29)) diff --git a/packages/proxy/Dockerfile b/packages/proxy/Dockerfile deleted file mode 100644 index bbe3d6ba1..000000000 --- a/packages/proxy/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -FROM node:18.13.0-alpine - -RUN apk add --update \ - curl \ - && rm -rf /var/cache/apk/* - -ENV NODE_ENV production - -RUN corepack enable - -COPY ./ /workspace - -WORKDIR /workspace/packages/proxy - -ENTRYPOINT [ "/workspace/packages/proxy/docker/entrypoint.sh" ] - -CMD [ "start-web" ] diff --git a/packages/proxy/bin/server.ts b/packages/proxy/bin/server.ts deleted file mode 100644 index d170868f8..000000000 --- a/packages/proxy/bin/server.ts +++ /dev/null @@ -1,91 +0,0 @@ -import * as http from 'http' -import * as https from 'https' -import * as path from 'path' - -const MAX_IMAGE_SIZE = 10 * 1024 * 1024 - -const ENABLED = false - -http - .createServer((req, res) => { - if (req.url === '/healthcheck') { - res.writeHead(200) - res.end() - return - } - - if (!ENABLED) { - res.writeHead(404) - res.end() - return - } - - res.setHeader('Access-Control-Allow-Origin', '*') - res.setHeader('Access-Control-Request-Method', '*') - res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET') - res.setHeader('Access-Control-Allow-Headers', '*') - - if (req.method === 'OPTIONS') { - res.writeHead(200) - res.end() - return - } - - delete req.headers.authorization - delete req.headers['x-auth-token'] - delete req.headers['x-auth-offline-token'] - - /** Remove / or // prefixes */ - const target = (req.url as string).replace(/^\/+/, '') - - try { - const url = new URL(target) - - if (url.protocol !== 'http:' && url.protocol !== 'https:') { - throw new Error('Invalid URL protocol') - } - - if (url.hostname === '') { - throw new Error('Invalid URL hostname') - } - - const ext = path.extname(url.pathname) - if (!['.jpg', '.jpeg', '.png', '.gif'].includes(ext)) { - res.writeHead(400) - res.end('Only image files can be proxied') - return - } - - const library = url.protocol === 'http:' ? http : https - const proxyRequest = library - .get(url.href, (targetRes) => { - let totalSize = 0 - targetRes.on('data', (chunk) => { - totalSize += chunk.length - if (totalSize > MAX_IMAGE_SIZE) { - proxyRequest.destroy(new Error('Image size exceeds the limit.')) - } - }) - - targetRes.on('end', () => { - const contentType = targetRes.headers['content-type'] - if (!contentType || !contentType.startsWith('image/')) { - res.writeHead(400, { 'Content-Type': 'text/plain' }) - res.end(`Invalid content type: ${contentType}`) - return - } - - res.writeHead(targetRes.statusCode as number, targetRes.headers) - targetRes.pipe(res) - }) - }) - .on('error', (error) => { - res.writeHead(500) - res.end(`Error: ${error.message}`) - }) - } catch (error) { - res.writeHead(500) - res.end(`Invalid URL: ${target} Error: ${error}`) - } - }) - .listen(3000) diff --git a/packages/proxy/docker/entrypoint-server.js b/packages/proxy/docker/entrypoint-server.js deleted file mode 100644 index a59fe3a6d..000000000 --- a/packages/proxy/docker/entrypoint-server.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -const path = require('path') - -const pnp = require(path.normalize(path.resolve(__dirname, '../../..', '.pnp.cjs'))).setup() - -const index = require(path.normalize(path.resolve(__dirname, '../dist/bin/server.js'))) - -Object.defineProperty(exports, '__esModule', { value: true }) - -exports.default = index diff --git a/packages/proxy/docker/entrypoint.sh b/packages/proxy/docker/entrypoint.sh deleted file mode 100755 index a475312bd..000000000 --- a/packages/proxy/docker/entrypoint.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -set -e - -COMMAND=$1 && shift 1 - -case "$COMMAND" in - 'start-web' ) - echo "[Docker] Starting Web..." - node docker/entrypoint-server.js - ;; - - * ) - echo "Unknown command" - ;; -esac - -exec "$@" diff --git a/packages/proxy/linter.tsconfig.json b/packages/proxy/linter.tsconfig.json deleted file mode 100644 index c1a7d22c5..000000000 --- a/packages/proxy/linter.tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["dist"] -} diff --git a/packages/proxy/package.json b/packages/proxy/package.json deleted file mode 100644 index 0cfc00dbc..000000000 --- a/packages/proxy/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "@standardnotes/proxy-server", - "version": "1.1.6", - "engines": { - "node": ">=18.0.0 <19.0.0" - }, - "private": true, - "description": "Proxy Server", - "main": "dist/src/index.js", - "typings": "dist/src/index.d.ts", - "repository": "git@github.com:standardnotes/server.git", - "author": "Karol Sójko ", - "license": "AGPL-3.0-or-later", - "scripts": { - "clean": "rm -fr dist", - "build": "tsc --build", - "lint": "eslint . --ext .ts", - "lint:fix": "eslint . --ext .ts --fix", - "start": "yarn node dist/bin/server.js" - }, - "dependencies": { - "newrelic": "^9.8.0" - }, - "devDependencies": { - "@types/newrelic": "^9.4.0", - "@types/node": "^18.14.0", - "@typescript-eslint/eslint-plugin": "^5.48.2", - "eslint": "^8.32.0", - "eslint-plugin-prettier": "^4.0.0", - "typescript": "^4.8.4" - } -} diff --git a/packages/proxy/tsconfig.json b/packages/proxy/tsconfig.json deleted file mode 100644 index d44188fb9..000000000 --- a/packages/proxy/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "compilerOptions": { - "composite": true, - "outDir": "./dist", - }, - "include": [ - "bin/**/*", - ], - "references": [] -} diff --git a/tsconfig.json b/tsconfig.json index c14b6f00b..5aea670ea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -53,9 +53,6 @@ { "path": "./packages/predicates" }, - { - "path": "./packages/proxy" - }, { "path": "./packages/revisions" },