mirror of
https://fast.feibisi.com/https://github.com/parcelvoy/platform.git
synced 2025-08-28 11:46:02 +08:00
Adds Lerna and merges control plane repo (#52)
* Adds Lerna and merges control plane repo * Re-adds `npm run start` as access pattern * Fixes eslint rules for react * Tweaks to Dockerfiles * Tweak to test runner
This commit is contained in:
parent
02f75d034c
commit
5fe0bcbbef
338 changed files with 100229 additions and 13202 deletions
5
.dockerignore
Normal file
5
.dockerignore
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
.git
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
node_modules
|
||||||
|
build
|
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
|
@ -65,7 +65,7 @@ jobs:
|
||||||
run: npm install && npm install --save-dev
|
run: npm install && npm install --save-dev
|
||||||
|
|
||||||
- name: 'Run Jest Tests'
|
- name: 'Run Jest Tests'
|
||||||
run: npm test
|
run: npm run test -- --scope=platform
|
||||||
env:
|
env:
|
||||||
NODE_ENV: test
|
NODE_ENV: test
|
||||||
APP_SECRET: ${{ secrets.APP_SECRET }}
|
APP_SECRET: ${{ secrets.APP_SECRET }}
|
||||||
|
|
93
LICENSE.txt
Normal file
93
LICENSE.txt
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
Elastic License 2.0
|
||||||
|
|
||||||
|
URL: https://www.elastic.co/licensing/elastic-license
|
||||||
|
|
||||||
|
## Acceptance
|
||||||
|
|
||||||
|
By using the software, you agree to all of the terms and conditions below.
|
||||||
|
|
||||||
|
## Copyright License
|
||||||
|
|
||||||
|
The licensor grants you a non-exclusive, royalty-free, worldwide,
|
||||||
|
non-sublicensable, non-transferable license to use, copy, distribute, make
|
||||||
|
available, and prepare derivative works of the software, in each case subject to
|
||||||
|
the limitations and conditions below.
|
||||||
|
|
||||||
|
## Limitations
|
||||||
|
|
||||||
|
You may not provide the software to third parties as a hosted or managed
|
||||||
|
service, where the service provides users with access to any substantial set of
|
||||||
|
the features or functionality of the software.
|
||||||
|
|
||||||
|
You may not move, change, disable, or circumvent the license key functionality
|
||||||
|
in the software, and you may not remove or obscure any functionality in the
|
||||||
|
software that is protected by the license key.
|
||||||
|
|
||||||
|
You may not alter, remove, or obscure any licensing, copyright, or other notices
|
||||||
|
of the licensor in the software. Any use of the licensor’s trademarks is subject
|
||||||
|
to applicable law.
|
||||||
|
|
||||||
|
## Patents
|
||||||
|
|
||||||
|
The licensor grants you a license, under any patent claims the licensor can
|
||||||
|
license, or becomes able to license, to make, have made, use, sell, offer for
|
||||||
|
sale, import and have imported the software, in each case subject to the
|
||||||
|
limitations and conditions in this license. This license does not cover any
|
||||||
|
patent claims that you cause to be infringed by modifications or additions to
|
||||||
|
the software. If you or your company make any written claim that the software
|
||||||
|
infringes or contributes to infringement of any patent, your patent license for
|
||||||
|
the software granted under these terms ends immediately. If your company makes
|
||||||
|
such a claim, your patent license ends immediately for work on behalf of your
|
||||||
|
company.
|
||||||
|
|
||||||
|
## Notices
|
||||||
|
|
||||||
|
You must ensure that anyone who gets a copy of any part of the software from you
|
||||||
|
also gets a copy of these terms.
|
||||||
|
|
||||||
|
If you modify the software, you must include in any modified copies of the
|
||||||
|
software prominent notices stating that you have modified the software.
|
||||||
|
|
||||||
|
## No Other Rights
|
||||||
|
|
||||||
|
These terms do not imply any licenses other than those expressly granted in
|
||||||
|
these terms.
|
||||||
|
|
||||||
|
## Termination
|
||||||
|
|
||||||
|
If you use the software in violation of these terms, such use is not licensed,
|
||||||
|
and your licenses will automatically terminate. If the licensor provides you
|
||||||
|
with a notice of your violation, and you cease all violation of this license no
|
||||||
|
later than 30 days after you receive that notice, your licenses will be
|
||||||
|
reinstated retroactively. However, if you violate these terms after such
|
||||||
|
reinstatement, any additional violation of these terms will cause your licenses
|
||||||
|
to terminate automatically and permanently.
|
||||||
|
|
||||||
|
## No Liability
|
||||||
|
|
||||||
|
*As far as the law allows, the software comes as is, without any warranty or
|
||||||
|
condition, and the licensor will not be liable to you for any damages arising
|
||||||
|
out of these terms or the use or nature of the software, under any kind of
|
||||||
|
legal claim.*
|
||||||
|
|
||||||
|
## Definitions
|
||||||
|
|
||||||
|
The **licensor** is the entity offering these terms, and the **software** is the
|
||||||
|
software the licensor makes available under these terms, including any portion
|
||||||
|
of it.
|
||||||
|
|
||||||
|
**you** refers to the individual or entity agreeing to these terms.
|
||||||
|
|
||||||
|
**your company** is any legal entity, sole proprietorship, or other kind of
|
||||||
|
organization that you work for, plus all organizations that have control over,
|
||||||
|
are under the control of, or are under common control with that
|
||||||
|
organization. **control** means ownership of substantially all the assets of an
|
||||||
|
entity, or the power to direct its management and policies by vote, contract, or
|
||||||
|
otherwise. Control can be direct or indirect.
|
||||||
|
|
||||||
|
**your licenses** are all the licenses granted to you for the software under
|
||||||
|
these terms.
|
||||||
|
|
||||||
|
**use** means anything you do with the software requiring one of your licenses.
|
||||||
|
|
||||||
|
**trademark** means trademarks, service marks, and similar rights.
|
5
apps/platform/.dockerignore
Normal file
5
apps/platform/.dockerignore
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
.git
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
|
node_modules
|
||||||
|
build
|
28
apps/platform/Dockerfile
Normal file
28
apps/platform/Dockerfile
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# --------------> The compiler image
|
||||||
|
FROM node:16 AS compile
|
||||||
|
WORKDIR /usr/src/app/apps/platform
|
||||||
|
COPY ./tsconfig.base.json /usr/src/app
|
||||||
|
COPY ./apps/platform ./
|
||||||
|
RUN npm ci
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# --------------> The build image
|
||||||
|
FROM node:16 AS build
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
COPY --from=compile /usr/src/app/apps/platform/package*.json ./
|
||||||
|
COPY --from=compile /usr/src/app/apps/platform/build ./
|
||||||
|
COPY --from=compile /usr/src/app/apps/platform/db ./db
|
||||||
|
COPY --from=compile /usr/src/app/apps/platform/scripts ./scripts
|
||||||
|
RUN npm ci --only=production
|
||||||
|
|
||||||
|
# --------------> The production image
|
||||||
|
FROM node:16-alpine
|
||||||
|
RUN apk add dumb-init
|
||||||
|
ENV NODE_ENV="production"
|
||||||
|
USER node
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
COPY --chown=node:node --from=build /usr/src/app ./
|
||||||
|
RUN chmod 755 ./scripts/entrypoint.sh
|
||||||
|
EXPOSE 3001
|
||||||
|
ENTRYPOINT ["./scripts/entrypoint.sh", "--"]
|
||||||
|
CMD ["dumb-init", "node", "index.js"]
|
0
global.d.ts → apps/platform/global.d.ts
vendored
0
global.d.ts → apps/platform/global.d.ts
vendored
22373
apps/platform/package-lock.json
generated
Normal file
22373
apps/platform/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
69
apps/platform/package.json
Normal file
69
apps/platform/package.json
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
{
|
||||||
|
"name": "platform",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@apideck/better-ajv-errors": "^0.3.6",
|
||||||
|
"@aws-sdk/client-s3": "^3.171.0",
|
||||||
|
"@aws-sdk/client-ses": "^3.121.0",
|
||||||
|
"@aws-sdk/client-sns": "^3.121.0",
|
||||||
|
"@aws-sdk/client-sqs": "^3.171.0",
|
||||||
|
"@aws-sdk/lib-storage": "^3.171.0",
|
||||||
|
"@koa/cors": "^3.3.0",
|
||||||
|
"@koa/router": "^11.0.1",
|
||||||
|
"@ladjs/country-language": "^1.0.3",
|
||||||
|
"@node-saml/node-saml": "github:node-saml/node-saml",
|
||||||
|
"@rxfork/sqs-consumer": "^6.0.0",
|
||||||
|
"ajv": "^8.11.0",
|
||||||
|
"ajv-formats": "^2.1.1",
|
||||||
|
"busboy": "^1.6.0",
|
||||||
|
"csv-parse": "^5.3.3",
|
||||||
|
"date-fns": "^2.29.2",
|
||||||
|
"date-fns-tz": "^1.3.7",
|
||||||
|
"dotenv": "^16.0.1",
|
||||||
|
"handlebars": "^4.7.7",
|
||||||
|
"handlebars-helpers": "^0.10.0",
|
||||||
|
"handlebars-utils": "^1.0.6",
|
||||||
|
"hashids": "^2.2.10",
|
||||||
|
"jsonpath": "^1.1.1",
|
||||||
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
"knex": "^2.3.0",
|
||||||
|
"koa": "^2.13.4",
|
||||||
|
"koa-body": "5.0.0",
|
||||||
|
"koa-jwt": "^4.0.3",
|
||||||
|
"mysql2": "^2.3.3",
|
||||||
|
"node-pushnotifications": "^2.0.3",
|
||||||
|
"node-schedule": "^2.1.0",
|
||||||
|
"nodemailer": "^6.7.6",
|
||||||
|
"openid-client": "^5.2.1",
|
||||||
|
"pino": "^8.1.0",
|
||||||
|
"pino-pretty": "^8.1.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"start": "nodemon",
|
||||||
|
"build": "tsc --build",
|
||||||
|
"lint": "eslint --ext .ts --max-warnings 0 src/",
|
||||||
|
"test": "jest --forceExit --testTimeout 10000",
|
||||||
|
"migration:create": "node ./scripts/create-migration.mjs"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/busboy": "^1.5.0",
|
||||||
|
"@types/jest": "^28.1.6",
|
||||||
|
"@types/jsonpath": "^0.2.0",
|
||||||
|
"@types/jsonwebtoken": "^8.5.9",
|
||||||
|
"@types/koa__cors": "^3.3.0",
|
||||||
|
"@types/koa__router": "^8.0.11",
|
||||||
|
"@types/node": "^18.7.18",
|
||||||
|
"@types/node-pushnotifications": "^1.0.4",
|
||||||
|
"@types/node-schedule": "^2.1.0",
|
||||||
|
"@types/nodemailer": "^6.4.4",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.30.5",
|
||||||
|
"@typescript-eslint/parser": "^5.30.5",
|
||||||
|
"eslint": "^8.19.0",
|
||||||
|
"eslint-config-standard": "^17.0.0",
|
||||||
|
"jest": "^28.1.3",
|
||||||
|
"nodemon": "^2.0.19",
|
||||||
|
"ts-jest": "^28.0.7",
|
||||||
|
"ts-node": "^10.8.2",
|
||||||
|
"typescript": "^4.9.3"
|
||||||
|
}
|
||||||
|
}
|
7
apps/platform/scripts/entrypoint.sh
Normal file
7
apps/platform/scripts/entrypoint.sh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
## Migrate the database
|
||||||
|
node ./migrate.js latest
|
||||||
|
|
||||||
|
# Hand off to the CMD
|
||||||
|
exec "$@"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue