diff --git a/package.json b/package.json index c4996ba..7efda41 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,15 @@ "version": "1.0.3", "private": true, "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "scripts": { "start": "node dist/server.js", - "build": "tsc", "prestart": "npm run build", + "build": "tsc", + "watch": "run-p watch-typescript watch-server", "watch-server": "nodemon dist/server.js", - "watch-typescript": "tsc -w", - "watch": "run-p watch-typescript watch-server" + "watch-typescript": "tsc -w" }, "devDependencies": { "@types/bcryptjs": "^2.4.2", diff --git a/src/lib/media.ts b/src/lib/media.ts index 9554660..7759043 100644 --- a/src/lib/media.ts +++ b/src/lib/media.ts @@ -5,6 +5,8 @@ import moment from 'moment' import { MEDIA_PARTITION_KEY } from '../constants' import { Media } from '../types/collections' +export const getBlobUrl = () => `https://${process.env.BLOB_STORAGE_ACCOUNT!}.blob.core.windows.net/${process.env.BLOB_STORAGE_CONTAINER!}` + export function generateSAS(permissions: string, expirationMinutes: number) { const sharedKeyCredential = new StorageSharedKeyCredential(process.env.BLOB_STORAGE_ACCOUNT!, process.env.BLOB_STORAGE_ACCOUNT_KEY!) @@ -18,7 +20,7 @@ export function generateSAS(permissions: string, expirationMinutes: number) { export async function deleteMedia(name: string) { const blobServiceClient = new BlobServiceClient( - `https://${process.env.BLOB_STORAGE_ACCOUNT!}.blob.core.windows.net/${process.env.BLOB_STORAGE_CONTAINER!}/${name}`, + `${getBlobUrl()}/${name}`, new StorageSharedKeyCredential(process.env.BLOB_STORAGE_ACCOUNT!, process.env.BLOB_STORAGE_ACCOUNT_KEY!) ) diff --git a/src/plugins/api/index.ts b/src/plugins/api/index.ts index f59372e..91f75ee 100644 --- a/src/plugins/api/index.ts +++ b/src/plugins/api/index.ts @@ -93,11 +93,6 @@ const plugin: Plugin = a version: process.env.NPM_PACKAGE_VERSION, } }) - - server.get('/.well-known/pki-validation/A26231F1EF6AC3FB8767F56CF5FDEEAC.txt', {}, async (request, reply) => { - reply.type('text/plain') - reply.send('50E0E6A3BA4AE16AD6B3D92302DA3860C511848E9EDC8EDF34B45594C6D25F7D comodoca.com 5e0587a07e5ee') - }) } export default plugin diff --git a/src/plugins/api/media.ts b/src/plugins/api/media.ts index da5f748..cbf9a31 100644 --- a/src/plugins/api/media.ts +++ b/src/plugins/api/media.ts @@ -14,7 +14,7 @@ import { MEDIA_PARTITION_KEY } from '../../constants' import { errorSchema } from '../../schemas' import { containerFor, getItem } from '../../lib/database' import { badRequestError, serverError } from '../../lib/errors' -import { deleteMedia, generateSAS } from '../../lib/media' +import { deleteMedia, generateSAS, getBlobUrl } from '../../lib/media' import { createId } from '../../lib/utils' import { Media } from '../../types/collections' @@ -30,6 +30,7 @@ function getSASRoute(server: FastifyInstance('/v1/sas', options, async () => { return { sas: generateSAS('arcw', 5), + blobUrl: getBlobUrl(), id: createId(), } }) diff --git a/src/server.ts b/src/server.ts index d6f329e..09cb5b2 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,7 +1,6 @@ import { config } from 'dotenv' import fastify from 'fastify' import helmet from 'fastify-helmet' -import cors from 'fastify-cors' import swagger from 'fastify-swagger' import api from './plugins/api' @@ -15,11 +14,6 @@ const server = fastify({ }) server.register(helmet) -server.register(cors, { - origin: true, - credentials: false, - maxAge: 2592000, -}) server.register(swagger, { routePrefix: '/docs', @@ -39,7 +33,7 @@ server.register(swagger, { { name: 'user', description: 'User endpoints.' }, ], host: 'localhost', - schemes: ['http'], + schemes: ['http', 'https'], }, }) @@ -52,11 +46,11 @@ server.ready(err => { const port = parseInt(process.env.PORT!, 10) -server.listen(port, '0.0.0.0', (err, address) => { +server.listen(port, (err, address) => { if (err) { server.log.error(err) process.exit(1) } - server.log.info(`✊🏾 Flexor listening at ${address}`) + server.log.info(`✊🏾 Flexor API listening at ${address}`) }) diff --git a/tsconfig.json b/tsconfig.json index 81ceed5..c4b3221 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,14 +1,14 @@ { "compilerOptions": { - "module": "commonjs", - "esModuleInterop": true, "allowSyntheticDefaultImports": true, - "target": "es6", + "baseUrl": ".", + "esModuleInterop": true, + "module": "commonjs", "moduleResolution": "node", - "sourceMap": true, "outDir": "dist", - "baseUrl": ".", + "sourceMap": true, "strict": true, + "target": "es6", "paths": { "*": [ "node_modules/*",