Merge pull request #4896 from mozilla/refactor-pm2

Refactor pm2
This commit is contained in:
Danny Coates 2020-04-14 14:57:58 -07:00 коммит произвёл GitHub
Родитель 28362cf362 3a054dfc3f
Коммит 3d1bb1830a
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
86 изменённых файлов: 19160 добавлений и 1737 удалений

Просмотреть файл

@ -23,7 +23,6 @@ jobs:
type: string
environment:
SKIP_PACKAGES: true
SKIP_DOCKER: true
steps:
- base-install:
package: << parameters.package >>
@ -41,7 +40,6 @@ jobs:
- image: redis
environment:
SKIP_PACKAGES: true
SKIP_DOCKER: true
steps:
- base-install
- run:
@ -87,7 +85,6 @@ jobs:
RUST_BACKTRACE: 1
environment:
SKIP_PACKAGES: false
SKIP_DOCKER: true
steps:
- base-install:
package: fxa-content-server
@ -111,7 +108,6 @@ jobs:
- image: redis
environment:
SKIP_PACKAGES: true
SKIP_DOCKER: true
steps:
- base-install:
package: fxa-email-service
@ -125,7 +121,6 @@ jobs:
- image: circleci/node:12
environment:
SKIP_PACKAGES: true
SKIP_DOCKER: true
steps:
- base-install:
package: fxa-circleci
@ -138,7 +133,6 @@ jobs:
- image: circleci/node:12
environment:
SKIP_PACKAGES: true
SKIP_DOCKER: true
steps:
- base-install
- setup_remote_docker

4
.gitignore поставляемый
Просмотреть файл

@ -61,9 +61,13 @@ Thumbs.db
!.nsprc
!.sass-lint.yml
!.prettier*
!.vscode
## Package-specific ##
# circleci
.circleci/local.yml
# browserid-verifier
packages/browserid-verifier/loadtest/venv
packages/browserid-verifier/loadtest/*.pyc

56
.vscode/launch.json поставляемый
Просмотреть файл

@ -5,12 +5,60 @@
"version": "0.2.0",
"configurations": [
{
"name": "Attach by Process ID",
"processId": "${command:PickProcess}",
"name": "Attach to auth",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"type": "pwa-node",
"restart": true
"cwd": "${workspaceFolder}",
"port": 9160
},
{
"name": "Attach to content",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9130
},
{
"name": "Attach to broker",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9180
},
{
"name": "Attach to payments",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9170
},
{
"name": "Attach to support",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9190
},
{
"name": "Attach to admin",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9140
},
{
"name": "Attach to admin-server",
"type": "node",
"request": "attach",
"skipFiles": ["<node_internals>/**"],
"cwd": "${workspaceFolder}",
"port": 9150
}
]
}

Просмотреть файл

@ -59,11 +59,11 @@ The most common commands are:
- `./pm2 logs` - logs for all servers (note: this must be used to verify accounts).
- `./pm2 logs 1` - display logs for process `1`.
- `./pm2 logs auth` - display logs for service `auth`.
- `./pm2 stop 1` - stop process `1`.
- `./pm2 stop content` - stop `content` service.
- `./pm2 restart 1` - restart process `1`.
- `./pm2 restart mysql` - restart `mysql` process.
- More commands in the [PM2 Readme](https://github.com/Unitech/PM2#main-features).
@ -88,7 +88,7 @@ Once you are back working on FxA just use the `npm start` command to bring the s
Use the `./pm2 logs` command to get the logs of all servers. You may also use `./pm2 logs [id]` to just see the logs for that particular server.
When you signup for an account using the form on `127.0.0.1:3030/signup` the "auth-server local mail helper" logs will print out the verification code that you need to copy paste into your browser to verify your account locally:
When you signup for an account using the form on `127.0.0.1:3030/signup` the "inbox" logs will print out the verification code that you need to copy paste into your browser to verify your account locally:
![](https://i.imgur.com/cdh9Xrl.png)
@ -111,7 +111,6 @@ If you get an `error` status for any of the servers please verify that you insta
> [libgmp](https://gmplib.org/),
> [graphicsmagick](http://www.graphicsmagick.org/),
> [docker](https://docs.docker.com/),
> [grunt](https://github.com/gruntjs/grunt-cli),
> [gcloud CLI](https://cloud.google.com/sdk/)
##### OS X (with [Brew](http://brew.sh/)):
@ -196,16 +195,6 @@ Once the installer begins:
4. Type "y" for "Modify PATH variable?"
5. Select "1) Proceed with installation"
#### Installing grunt
```
npm install -g grunt-cli
```
---
---
---
### Secrets
@ -221,7 +210,7 @@ Check out the Secrets section in the following READMEs:
### Firefox Custom Profile
**Use `npm run start-firefox` to start Firefox with local server configurations.**
**Use `npm start firefox` to start Firefox with local server configurations.**
Available options:
- `FXA_ENV=local` or `latest` or `stable` or `stage` (NOTE: `local` is default).
@ -236,33 +225,23 @@ Available options:
**The following requires [the JDK](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk) and tests the local servers only.**
## run the following commands from the fxa-content-server directory
To run all functional tests:
```
npm test
npm run test-functional
```
Note that as of 2019-07-08, running this command at the project root will fail ([see issue #725](https://github.com/mozilla/fxa/issues/725)). Instead, run the command in the server that needs to be tested.
To run a specific test or tests whose name matches part of a search string:
```
node tests/intern.js --suites=all --grep="Test string to search for"
npm run test-functional -- --grep="Test name"
```
To run a single test:
--where 'Test name' is not the file name but the description/name of the test(s).
```
npm run test-functional -- "--grep=Test name"
```
--where 'Test name' is not the file name but the description/name of the test.
```
node tests/intern.js --grep="Test name"
```
## run the above command from the fxa-content-server directory
---
### Node debugging
@ -272,33 +251,23 @@ We have also extensively documented working with the [FxA code-base using VS Cod
#### Debugging a server
In the case of Firefox Accounts, the `pm2` process manager complicates setup a bit. Here's one approach that works:
`npm start` runs some of the services with the debugger enabled by default.
1. Start the whole server as usual (`npm install && npm start` from top-level in the monorepo)
2. Stop the pm2-managed version of whatever server you care about:
- Get the pm2 `id` for the server from `./pm2 ls`
- Stop the process by doing `./pm2 stop NN` where NN is the pm2 `id`
3. Restart the server manually, passing the `--inspect` argument:
- For fxa-content-server, fxa-payments-server, fxa-auth-server, or fxa-event-broker, just go to the package directory and do `npm run start-dev-debug` to start a debuggable server process.
- For other servers, we just haven't added a `start-dev-debug` run script yet; feel free to add one by tracing through the existing run scripts to find the actual script that runs the server (not one that forks another script).
4. Connect to the process to debug it:
2. To see which debug port each service is listening on check `.vscode/launch.json` or the `pm2.config.js` file of the package you're interested in.
3. Connect to the process to debug it:
- Using Google Chrome, go to `chrome://inspect`, then click the process to connect to devtools.
- you may need to add a new target in the "Configure..." menu with the correct debug port
- VSCode requires setting up a `.vscode/launch.json` file; see the [VSCode docs](https://code.visualstudio.com/docs/nodejs/nodejs-debugging) for details.
Alternatively if you want to be able to debug any of several servers that is configured with a `start-dev-debug` script you can start `pm2` using the `debug_servers.json` file:
```bash
pm2 kill
pm2 start debug_servers.json
```
##### Default Debug Ports
If you're using `npm run start-dev-debug` or `pm2` with the `debug_server.json`, the following ports are used for `--inspect`:
If you're using `npm start`, the following ports are used for `--inspect`:
| Port | Service |
| ---- | --------------- |
| 9140 | content-server |
| 9130 | content-server |
| 9140 | admin-panel |
| 9150 | admin-server |
| 9160 | auth-server |
| 9170 | payments-server |
@ -393,7 +362,7 @@ npm install maildev -g
```bash
npm start
./pm2 stop 'auth-server local mail helper'
./pm2 stop inbox
```
Once services have started, you can start MailDev on port 9999. You might have to start MailDev with sudo permissions.
@ -406,10 +375,6 @@ All emails sent can be viewed from [http://localhost:1080](http://localhost:1080
---
### Other tasks
- [Updating dependencies and `npm-shrinkwrap.json` files](https://mozilla.github.io/application-services/docs/accounts/local-development.html#updating-npm-shrinkwrap).
### Documentation
The [Firefox Ecosystem Platform](https://mozilla.github.io/ecosystem-platform/) serves as a documentation hub for Firefox Accounts, Services, Synced Client Integrations, and Subscription Platform.

Просмотреть файл

3
_dev/README.md Normal file
Просмотреть файл

@ -0,0 +1,3 @@
# \_dev
This directory contains files to support local development that aren't needed in production, especially things that would otherwise clutter up the root directory.

Просмотреть файл

@ -0,0 +1,73 @@
module.exports = {
apps: [
{
name: "mysql",
script: "_scripts/mysql.sh",
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
},
{
name: "redis",
script: "_scripts/redis.sh",
env: {
PORT: "6379"
},
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
},
{
name: "memcache",
script: "_scripts/memcached.sh",
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
},
{
name: "sns",
script: "_scripts/goaws.sh",
max_restarts: "1",
min_uptime: "2m",
autorestart: false,
kill_timeout: 20000
},
{
name: "pubsub",
script: "_scripts/pubsub.sh",
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
},
{
name: "firestore",
script: "_scripts/firestore.sh",
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
},
{
name: "sync",
script: "_scripts/syncserver.sh",
max_restarts: "1",
min_uptime: "2m",
autorestart: false,
kill_timeout: 20000
},
{
name: "pushbox",
script: "_scripts/pushbox.sh",
max_restarts: "1",
min_uptime: "2m",
args: "3306 root@mydb:3306",
kill_timeout: 20000
},
{
name: "email",
script: "_scripts/fxa-email-service.sh",
max_restarts: "1",
min_uptime: "2m",
kill_timeout: 20000
}
]
};

15
_scripts/check-mysql.sh Executable file
Просмотреть файл

@ -0,0 +1,15 @@
#!/bin/bash -e
PORT=${1:-3306}
RETRY=60
for i in $(eval echo "{1..$RETRY}"); do
if echo PING | nc localhost "$PORT" | grep -q 'mysql'; then
exit 0
else
if [ "$i" -lt $RETRY ]; then
sleep 1
fi
fi
done
exit 1

Просмотреть файл

@ -24,9 +24,9 @@ PORTS=(
occupied=()
for port in ${PORTS[@]}; do
if echo PING | nc localhost $port >/dev/null; then
occupied=("${occupied[@]}" $port)
for port in "${PORTS[@]}"; do
if echo PING | nc localhost "$port" >/dev/null; then
occupied=("${occupied[@]}" "$port")
fi
done

14
_scripts/check-url.sh Executable file
Просмотреть файл

@ -0,0 +1,14 @@
#!/bin/bash -e
RETRY=30
for i in $(eval echo "{1..$RETRY}"); do
if [ "$(curl -s -o /dev/null --silent -w "%{http_code}" http://$1)" == "${2:-200}" ]; then
exit 0
else
if [ "$i" -lt $RETRY ]; then
sleep 1
fi
fi
done
exit 1

Просмотреть файл

@ -1,55 +0,0 @@
#!/usr/bin/env bash
set -ex
node_version="$(node -v | cut -f 1 -d '.' | cut -f 2 -d 'v')"
if [ "$node_version" -ne "12" ]; then
echo "install node 12 to continue installation"
echo "http://nodejs.org/"
exit 1
fi
if [[ ! $(which rustup) ]]; then
curl https://sh.rustup.rs -sSf | sh -s -- -y
export PATH=$PATH:$HOME/.cargo/bin/
fi
if [[ $(which docker) && $(docker --version) ]]; then
docker=y
else
docker=n
fi
os="$(uname -a | cut -f 1 -d ' ')"
if [ "$os" = "Darwin" ]; then
if [ "$docker" = "n" ]; then
echo "install docker to continue installation"
echo "https://docs.docker.com/docker-for-mac/install/"
exit 1
fi
if [[ $(which brew) && $(brew --version) ]]; then
if [[ $(brew ls --versions gmp) ]]; then
echo "gmp is installed"
else
brew install gmp
fi
if [[ $(brew ls --versions graphicsmagick) ]]; then
echo "graphicsmagick is installed"
else
brew install graphicsmagick
fi
else
echo "install homebrew to continue installation"
echo "https://brew.sh/"
exit 1
fi
elif [ "$os" = "Linux" ]; then
if [ "$docker" = "n" ]; then
echo "install docker to continue installation using the steps below:"
echo "sudo apt-get install docker.io"
echo "sudo groupadd docker"
echo "sudo gpasswd -a $USER docker"
echo "sudo service docker restart"
fi
fi

Просмотреть файл

@ -1,17 +0,0 @@
#!/bin/bash -ex
function check_mysql() {
PORT=${1:-3306}
RETRY=120
for i in $(eval echo "{1..$RETRY}"); do
if echo PING | nc localhost $PORT | grep -q 'mysql'; then
return 0
else
if [ $i -lt $RETRY ]; then
sleep 1
fi
fi
done
return 1
}

Просмотреть файл

@ -19,4 +19,4 @@ docker run --rm --name=firestore \
-p 9090:9090 \
jdlk7/firestore-emulator &
while :; do read; done
while :; do read -r; done

Просмотреть файл

@ -1,4 +1,4 @@
#!/bin/sh -ex
#!/bin/bash -ex
# This docker image doesn't react to SIGINTs (Ctrl+C) which is used by
# pm2 to kill processes.
@ -21,4 +21,4 @@ docker run --rm --name fxa_email_service \
-e RUST_BACKTRACE=1 \
-p 8001:8001 mozilla/fxa-email-service &
while :; do read; done
while :; do read -r; done

Просмотреть файл

@ -1,10 +1,8 @@
#!/bin/sh
set -e
#!/bin/bash -e
echo "Branch: $CIRCLE_BRANCH Pull request: $CIRCLE_PULL_REQUEST"
if [ "$CIRCLE_BRANCH" != "master" -o "$CIRCLE_PULL_REQUEST" != "" ]; then
if [ "$CIRCLE_BRANCH" != "master" ] || [ "$CIRCLE_PULL_REQUEST" != "" ]; then
echo "Not building docs."
exit 0
fi
@ -26,11 +24,11 @@ npm run build-storybook
cd ../..
git clone --branch gh-pages git@github.com:mozilla/fxa.git docs-build
cd docs-build
rm -rf *
rm -rf ./*
mv ../packages/fxa-email-service/target/doc fxa-email-service
mv ../packages/fxa-payments-server/storybook-static fxa-payments-server
CHANGES=`git status --porcelain`
CHANGES=$(git status --porcelain)
if [ "$CHANGES" = "" ]; then
echo "Docs are unchanged, not deploying to GitHub Pages."

15
_scripts/install-all.sh Executable file
Просмотреть файл

@ -0,0 +1,15 @@
#!/bin/bash -e
if [ "${SKIP_PACKAGES}" != "true" ]; then
# Set ulimit, need it for npm
ulimit -S -n 2048 || echo "Setting ulimit failed"
if [ "${CI}" = "true" ]; then
# it seems the filesystem on circleci can't handle full concurrency
npx lerna exec --concurrency 6 --ignore fxa-amplitude-send -- npm ci
else
npx lerna bootstrap --hoist pm2
fi
ln -sf node_modules/.bin/pm2 pm2
fi

Просмотреть файл

@ -1,9 +0,0 @@
#!/bin/sh -ex
if [ "${SKIP_PACKAGES}" != "true" ]; then
_scripts/install_packages.sh
fi
if [ "${SKIP_DOCKER}" != "true" ]; then
_scripts/install_docker.sh
fi

Просмотреть файл

@ -1,17 +0,0 @@
#!/bin/sh -ex
docker pull memcached
docker pull mozilla/syncserver
docker pull mozilla/pushbox
docker pull pafortin/goaws
docker pull redis
docker pull mysql/mysql-server:5.6
docker pull jdlk7/firestore-emulator
docker pull knarz/pubsub-emulator

Просмотреть файл

@ -1,14 +0,0 @@
#!/bin/sh -ex
_scripts/check.sh
# Set ulimit, need it for npm
ulimit -S -n 2048 || echo "Setting ulimit failed"
if [ "${CI}" = "true" ]; then
# it seems the filesystem on circleci can't handle full concurrency
npx lerna exec --concurrency 6 --ignore fxa-amplitude-send -- npm ci
else
npx lerna bootstrap --ignore fxa-amplitude-send
fi
ln -sf node_modules/.bin/pm2 pm2

Просмотреть файл

@ -1 +1,3 @@
#!/bin/bash -ex
docker run --rm -p 11211:11211 --name memcache memcached

Просмотреть файл

@ -22,4 +22,4 @@ docker run --rm --name=mydb \
-p 3306:3306 \
mysql/mysql-server:5.6 &
while :; do read; done
while :; do read -r; done

13
_scripts/pm2-all.sh Executable file
Просмотреть файл

@ -0,0 +1,13 @@
#!/bin/bash -e
DIR=$(dirname "$0")
COMMAND=$1
cd "$DIR"
echo "running ${COMMAND} fxa services..."
for d in ../packages/*/ ; do
if [[ -r "${d}pm2.config.js" ]]; then
(cd "$d" && npm "$COMMAND" > /dev/null)
fi
done
pm2 ls

Просмотреть файл

@ -19,4 +19,4 @@ docker run --rm --name=pubsub \
-p 8085:8085 \
knarz/pubsub-emulator:latest &
while :; do read; done
while :; do read -r; done

Просмотреть файл

@ -1,4 +1,4 @@
#!/bin/sh -ex
#!/bin/bash -ex
# This docker image doesn't react to SIGINTs (Ctrl+C) which is used by
# pm2 to kill processes.
@ -22,4 +22,4 @@ docker run --rm --name pushbox_db \
-e MYSQL_PASSWORD=test \
mysql/mysql-server:5.6 &
while :; do read; done
while :; do read -r; done

Просмотреть файл

@ -1,6 +1,4 @@
#!/bin/sh -ex
sleep 3 # Give 3 secs to the mysql server to start
. _scripts/check_mysql.sh
#!/bin/bash -ex
# This docker image doesn't react to SIGINTs (Ctrl+C) which is used by
# pm2 to kill processes.
@ -17,19 +15,15 @@ function on_singint() {
MYSQL_HOST_PORT=${1:-4306}
MYSQL_URI=${2:-test:test@pushbox_db:3306} #3306 because -p is only for the host.
check_mysql $MYSQL_HOST_PORT
mysqlStarted=$?
"${0%/*}/check-mysql.sh" "$MYSQL_HOST_PORT"
if [ "$mysqlStarted" ]; then
trap on_singint INT
trap on_singint INT
docker run --rm --name pushbox \
-p 8002:8002 \
-e ROCKET_PORT=8002 \
-e ROCKET_SERVER_TOKEN=Correct_Horse_Battery_Staple_1 \
-e ROCKET_DATABASE_URL=mysql://"$MYSQL_URI"/pushbox \
mozilla/pushbox &
docker run --rm --name pushbox \
-p 8002:8002 \
-e ROCKET_PORT=8002 \
-e ROCKET_SERVER_TOKEN=Correct_Horse_Battery_Staple_1 \
-e ROCKET_DATABASE_URL=mysql://$MYSQL_URI/pushbox \
mozilla/pushbox &
while :; do read; done
fi
while :; do read -r; done

Просмотреть файл

@ -1,9 +0,0 @@
#!/bin/bash -ex
. ../../_scripts/check_mysql.sh
check_mysql
mysqlStarted=$?
if [ "$mysqlStarted" ]; then
npm start
fi

Просмотреть файл

@ -1,9 +0,0 @@
#!/bin/bash -ex
. ../../_scripts/check_mysql.sh
check_mysql
mysqlStarted=$?
if [ "$mysqlStarted" ]; then
npm run start-dev-debug
fi

Просмотреть файл

@ -1,13 +1,15 @@
#!/bin/sh -ex
#!/bin/bash -ex
DOCKER_OS="`docker info --format '{{.OperatingSystem}}'`"
DOCKER_OS="$(docker info --format '{{.OperatingSystem}}')"
if [ "$DOCKER_OS" = 'Docker for Windows' -o "$DOCKER_OS" = 'Docker for Mac' -o "$DOCKER_OS" = 'Docker Desktop' ]; then
if [ "$DOCKER_OS" = 'Docker for Windows' ] || [ "$DOCKER_OS" = 'Docker for Mac' ] || [ "$DOCKER_OS" = 'Docker Desktop' ]; then
HOST_ADDR='host.docker.internal'
else
HOST_ADDR='127.0.0.1'
fi
"${0%/*}/check-url.sh" "http://$HOST_ADDR:3030/.well-known/fxa-client-configuration"
docker run --rm --name syncserver \
-p 5000:5000 \
-e SYNCSERVER_PUBLIC_URL=http://127.0.0.1:5000 \

Просмотреть файл

@ -3,7 +3,7 @@
echo ""
echo "Usage:"
echo " Checkout HEAD of master of https://github.com/mozilla/fxa, and from"
echo " ./fxa, run ./_scripts/upload_assets_to_cdn.sh."
echo " ./fxa, run ./_scripts/upload-assets-to-cdn.sh."
echo ""
echo "Your current branch is $(git branch --show-current)"
echo ""

Просмотреть файл

@ -1,131 +0,0 @@
{
"apps": [
{
"name": "auth-server local mail helper",
"script": "test/mail_helper.js",
"cwd": "packages/fxa-auth-server",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "auth-server db mysql PORT 8000",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-auth-db-mysql",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "2",
"min_uptime": "2m"
},
{
"name": "auth-server key server PORT 9000",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-auth-server",
"env": {
"DB": "mysql",
"NODE_ENV": "dev",
"IP_ADDRESS": "0.0.0.0",
"SIGNIN_UNBLOCK_FORCED_EMAILS": "^block.*@restmail\\.net$",
"SIGNIN_CONFIRMATION_ENABLED": "true",
"SIGNIN_CONFIRMATION_FORCE_EMAIL_REGEX": "^sync.*@restmail\\.net$"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "content-server PORT 3030",
"script": "node_modules/.bin/grunt",
"args": ["server"],
"cwd": "packages/fxa-content-server",
"env": {
"NODE_ENV": "development"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "profile-server PORT 1111",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-profile-server",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"HOST": "0.0.0.0",
"DB": "mysql"
},
"min_uptime": "2m"
},
{
"name": "browserid-verifier PORT 5050",
"script": "server.js",
"cwd": "packages/browserid-verifier",
"env": {
"PORT": "5050",
"IP_ADDRESS": "0.0.0.0",
"FORCE_INSECURE_LOOKUP_OVER_HTTP": "true"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "payments server PORT 3031",
"cwd": "packages/fxa-payments-server",
"script": "npm",
"args": ["run", "start-dev"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development"
}
},
{
"name": "support admin panel PORT 7100",
"cwd": "packages/fxa-support-panel",
"script": "npm",
"args": ["run", "start-dev"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development"
}
},
{
"name": "event-broker",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-event-broker",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"WORKER_HOST": "0.0.0.0"
},
"min_uptime": "2m"
},
{
"name": "123done PORT 8080",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "321done UNTRUSTED PORT 10139",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local-untrusted.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
}
]
}

Просмотреть файл

@ -1,213 +0,0 @@
{
"apps": [
{
"name": "MySQL server PORT 3306",
"script": "_scripts/mysql.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "redis PORT 6379",
"script": "_scripts/redis.sh",
"env": {
"PORT": "6379"
},
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "memcached PORT 11211",
"script": "_scripts/memcached.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "Fake SQS/SNS PORT 4100",
"script": "_scripts/goaws.sh",
"max_restarts": "1",
"min_uptime": "2m",
"autorestart": false,
"kill_timeout": 20000
},
{
"name": "google-pubsub-emulator PORT 8085",
"script": "_scripts/pubsub.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "google-firestore-emulator PORT 9090",
"script": "_scripts/firestore.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "sync server PORT 5000",
"script": "_scripts/syncserver.sh",
"max_restarts": "1",
"min_uptime": "2m",
"autorestart": false,
"kill_timeout": 20000
},
{
"name": "email-service PORT 8001",
"script": "_scripts/fxa_email_service.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "auth-server local mail helper",
"script": "test/mail_helper.js",
"cwd": "packages/fxa-auth-server",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "auth-server db mysql PORT 8000",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-auth-db-mysql",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "2",
"min_uptime": "2m"
},
{
"name": "auth-server key server PORT 9000",
"script": "../../_scripts/start_after_mysql_debug.sh",
"cwd": "packages/fxa-auth-server",
"env": {
"DB": "mysql",
"NODE_ENV": "dev",
"IP_ADDRESS": "0.0.0.0",
"SIGNIN_UNBLOCK_FORCED_EMAILS": "^block.*@restmail\\.net$",
"SIGNIN_CONFIRMATION_ENABLED": "true",
"SIGNIN_CONFIRMATION_FORCE_EMAIL_REGEX": "^sync.*@restmail\\.net$",
"CONFIG_FILES": "config/secrets.json"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "content-server PORT 3030",
"script": "npm",
"args": ["run", "start-dev-debug"],
"cwd": "packages/fxa-content-server",
"env": {
"NODE_ENV": "development"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "profile-server PORT 1111",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-profile-server",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"HOST": "0.0.0.0",
"DB": "mysql"
},
"min_uptime": "2m"
},
{
"name": "Fortress PORT 9292",
"script": "server.js",
"cwd": "packages/fortress",
"max_restarts": "1",
"env": {
"CONFIG_FORTRESS": "./config-local.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "123done PORT 8080",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "321done UNTRUSTED PORT 10139",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local-untrusted.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "browserid-verifier PORT 5050",
"script": "server.js",
"cwd": "packages/browserid-verifier",
"env": {
"PORT": "5050",
"IP_ADDRESS": "0.0.0.0",
"FORCE_INSECURE_LOOKUP_OVER_HTTP": "true"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "payments server PORT 3031",
"cwd": "packages/fxa-payments-server",
"script": "npm",
"args": ["run", "start-dev-debug"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development",
"CONFIG_FILES": "server/config/secrets.json"
}
},
{
"name": "support admin panel PORT 7100",
"cwd": "packages/fxa-support-panel",
"script": "npm",
"args": ["run", "start-dev"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development"
}
},
{
"name": "event-broker",
"script": "../../_scripts/start_after_mysql_debug.sh",
"cwd": "packages/fxa-event-broker",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"WORKER_HOST": "0.0.0.0"
},
"min_uptime": "2m"
},
{
"name": "pushbox PORT 8002",
"script": "_scripts/pushbox.sh",
"max_restarts": "1",
"min_uptime": "2m",
"args": "3306 root@mydb:3306",
"kill_timeout": 20000
}
]
}

Просмотреть файл

@ -2,5 +2,10 @@
"packages": [
"packages/*"
],
"version": "independent"
"version": "independent",
"command": {
"bootstrap": {
"ignore": "fxa-amplitude-send"
}
}
}

Просмотреть файл

@ -1,213 +0,0 @@
{
"apps": [
{
"name": "MySQL server PORT 3306",
"script": "_scripts/mysql.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "redis PORT 6379",
"script": "_scripts/redis.sh",
"env": {
"PORT": "6379"
},
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "memcached PORT 11211",
"script": "_scripts/memcached.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "Fake SQS/SNS PORT 4100",
"script": "_scripts/goaws.sh",
"max_restarts": "1",
"min_uptime": "2m",
"autorestart": false,
"kill_timeout": 20000
},
{
"name": "google-pubsub-emulator PORT 8085",
"script": "_scripts/pubsub.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "google-firestore-emulator PORT 9090",
"script": "_scripts/firestore.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "sync server PORT 5000",
"script": "_scripts/syncserver.sh",
"max_restarts": "1",
"min_uptime": "2m",
"autorestart": false,
"kill_timeout": 20000
},
{
"name": "email-service PORT 8001",
"script": "_scripts/fxa_email_service.sh",
"max_restarts": "1",
"min_uptime": "2m",
"kill_timeout": 20000
},
{
"name": "auth-server local mail helper",
"script": "test/mail_helper.js",
"cwd": "packages/fxa-auth-server",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "auth-server db mysql PORT 8000",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-auth-db-mysql",
"env": {
"NODE_ENV": "dev"
},
"max_restarts": "2",
"min_uptime": "2m"
},
{
"name": "auth-server key server PORT 9000",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-auth-server",
"env": {
"DB": "mysql",
"NODE_ENV": "dev",
"IP_ADDRESS": "0.0.0.0",
"SIGNIN_UNBLOCK_FORCED_EMAILS": "^block.*@restmail\\.net$",
"SIGNIN_CONFIRMATION_ENABLED": "true",
"SIGNIN_CONFIRMATION_FORCE_EMAIL_REGEX": "^sync.*@restmail\\.net$",
"CONFIG_FILES": "config/secrets.json"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "content-server PORT 3030",
"script": "node_modules/.bin/grunt",
"args": ["server"],
"cwd": "packages/fxa-content-server",
"env": {
"NODE_ENV": "development"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "profile-server PORT 1111",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-profile-server",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"HOST": "0.0.0.0",
"DB": "mysql"
},
"min_uptime": "2m"
},
{
"name": "Fortress PORT 9292",
"script": "server.js",
"cwd": "packages/fortress",
"max_restarts": "1",
"env": {
"CONFIG_FORTRESS": "./config-local.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "123done PORT 8080",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "321done UNTRUSTED PORT 10139",
"script": "server.js",
"cwd": "packages/123done",
"max_restarts": "1",
"env": {
"CONFIG_123DONE": "./config-local-untrusted.json",
"NODE_ENV": "dev"
},
"min_uptime": "2m"
},
{
"name": "browserid-verifier PORT 5050",
"script": "server.js",
"cwd": "packages/browserid-verifier",
"env": {
"PORT": "5050",
"IP_ADDRESS": "0.0.0.0",
"FORCE_INSECURE_LOOKUP_OVER_HTTP": "true"
},
"max_restarts": "1",
"min_uptime": "2m"
},
{
"name": "payments server PORT 3031",
"cwd": "packages/fxa-payments-server",
"script": "npm",
"args": ["run", "start-dev"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development",
"CONFIG_FILES": "server/config/secrets.json"
}
},
{
"name": "support admin panel PORT 7100",
"cwd": "packages/fxa-support-panel",
"script": "npm",
"args": ["run", "start-dev"],
"max_restarts": "1",
"min_uptime": "2m",
"env": {
"LOGGING_FORMAT": "pretty",
"NODE_ENV": "development"
}
},
{
"name": "event-broker",
"script": "../../_scripts/start_after_mysql.sh",
"cwd": "packages/fxa-event-broker",
"max_restarts": "1",
"env": {
"NODE_ENV": "development",
"WORKER_HOST": "0.0.0.0"
},
"min_uptime": "2m"
},
{
"name": "pushbox PORT 8002",
"script": "_scripts/pushbox.sh",
"max_restarts": "1",
"min_uptime": "2m",
"args": "3306 root@mydb:3306",
"kill_timeout": 20000
}
]
}

298
package-lock.json сгенерированный
Просмотреть файл

@ -58,6 +58,187 @@
"regenerator-runtime": "^0.13.4"
}
},
"@dannycoates/nps": {
"version": "5.9.12",
"resolved": "https://registry.npmjs.org/@dannycoates/nps/-/nps-5.9.12.tgz",
"integrity": "sha512-ZZORX0VCLA0WuFOzbJKhdgzmNLAuteIC+6trauK/Tr+/fBthtW5yH9DCN+KLTgU+wulAgJkFbSSCc7V4YVVihg==",
"requires": {
"arrify": "^1.0.1",
"chalk": "^2.0.1",
"common-tags": "^1.4.0",
"find-up": "^2.1.0",
"js-yaml": "^3.9.0",
"lodash": "^4.17.4",
"manage-path": "^2.0.0",
"prefix-matches": "^1.0.1",
"readline-sync": "^1.4.7",
"spawn-command-with-kill": "^1.0.0",
"type-detect": "^4.0.3",
"yargs": "14.2.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
"integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"find-up": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
"integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"requires": {
"locate-path": "^2.0.0"
}
},
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
"integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
"requires": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
}
},
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
"integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"requires": {
"p-try": "^1.0.0"
}
},
"p-locate": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
"integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
"requires": {
"p-limit": "^1.1.0"
}
},
"p-try": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
},
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
}
},
"strip-ansi": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
}
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
},
"yargs": {
"version": "14.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.0.tgz",
"integrity": "sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg==",
"requires": {
"cliui": "^5.0.0",
"decamelize": "^1.2.0",
"find-up": "^3.0.0",
"get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
"require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
"yargs-parser": "^15.0.0"
},
"dependencies": {
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"requires": {
"locate-path": "^3.0.0"
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
}
},
"p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"requires": {
"p-limit": "^2.0.0"
}
},
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
}
}
}
}
},
"@evocateur/libnpmaccess": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@evocateur/libnpmaccess/-/libnpmaccess-3.1.2.tgz",
@ -2641,6 +2822,11 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
},
"common-tags": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
"integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw=="
},
"compare-func": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz",
@ -4668,6 +4854,30 @@
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"event-stream": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
"integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=",
"requires": {
"duplexer": "~0.1.1",
"from": "~0",
"map-stream": "~0.1.0",
"pause-stream": "0.0.11",
"split": "0.3",
"stream-combiner": "~0.0.4",
"through": "~2.3.1"
},
"dependencies": {
"split": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
"integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=",
"requires": {
"through": "2"
}
}
}
},
"eventemitter2": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz",
@ -5041,6 +5251,11 @@
"map-cache": "^0.2.2"
}
},
"from": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
"integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4="
},
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
@ -6302,6 +6517,11 @@
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8="
},
"is-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz",
"integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA="
},
"is-observable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
@ -6442,6 +6662,12 @@
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"json": {
"version": "9.0.6",
"resolved": "https://registry.npmjs.org/json/-/json-9.0.6.tgz",
"integrity": "sha1-eXLCpaSKQmeNsnMMfCxO5uTiRYU=",
"dev": true
},
"json-parse-better-errors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
@ -7098,6 +7324,11 @@
"ssri": "^6.0.0"
}
},
"manage-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz",
"integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc="
},
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@ -7108,6 +7339,11 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
},
"map-stream": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
"integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ="
},
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
@ -7998,6 +8234,14 @@
"pinkie-promise": "^2.0.0"
}
},
"pause-stream": {
"version": "0.0.11",
"resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
"integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
"requires": {
"through": "~2.3"
}
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@ -8235,6 +8479,15 @@
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
"integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs="
},
"prefix-matches": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prefix-matches/-/prefix-matches-1.0.1.tgz",
"integrity": "sha1-AuNM4n8zr0jmi7/OKqwqAEvCt2w=",
"requires": {
"is-object": "^1.0.1",
"starts-with": "^1.0.2"
}
},
"prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
@ -8358,6 +8611,14 @@
"resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz",
"integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA=="
},
"ps-tree": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
"integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
"requires": {
"event-stream": "=3.3.4"
}
},
"psl": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
@ -8520,6 +8781,11 @@
"picomatch": "^2.0.7"
}
},
"readline-sync": {
"version": "1.4.10",
"resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
"integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw=="
},
"rechoir": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
@ -9180,6 +9446,20 @@
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"spawn-command": {
"version": "0.0.2-1",
"resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz",
"integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A="
},
"spawn-command-with-kill": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/spawn-command-with-kill/-/spawn-command-with-kill-1.0.2.tgz",
"integrity": "sha512-EPzhF/ZO19xzZ1RCyrNorAal5o5FoZoXqHeybQm4vyfMmNbOU5cvfKQsTuspcBVilL5QDmybYpwkj9/GgaEd8Q==",
"requires": {
"ps-tree": "^1.2.0",
"spawn-command": "^0.0.2-1"
}
},
"spdx-correct": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
@ -9261,6 +9541,11 @@
"figgy-pudding": "^3.5.1"
}
},
"starts-with": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/starts-with/-/starts-with-1.0.2.tgz",
"integrity": "sha1-Fnk6cp2J1M89T7LtovkIrjV/GW8="
},
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@ -9285,6 +9570,14 @@
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"stream-combiner": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
"integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=",
"requires": {
"duplexer": "~0.1.1"
}
},
"stream-each": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
@ -9691,6 +9984,11 @@
"prelude-ls": "~1.1.2"
}
},
"type-detect": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
},
"type-fest": {
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",

21
package-scripts.js Normal file
Просмотреть файл

@ -0,0 +1,21 @@
module.exports = {
scripts: {
default: "nps help",
start: {
default: `pm2 start _dev/pm2/infrastructure.config.js && _scripts/pm2-all.sh start && echo "Use 'npm stop' to stop all the servers"`,
infrastructure: `pm2 start _dev/pm2/infrastructure.config.js`,
services: `_scripts/pm2-all.sh start`,
firefox: "./packages/fxa-dev-launcher/bin/fxa-dev-launcher &"
},
stop: {
default: "pm2 kill",
infrastructure: `pm2 stop _dev/pm2/infrastructure.config.js`,
services: `_scripts/pm2-all.sh stop`
},
restart: {
default: "pm2 restart all",
infrastructure: `pm2 restart _dev/pm2/infrastructure.config.js`,
services: `_scripts/pm2-all.sh restart`
}
}
};

Просмотреть файл

@ -4,17 +4,16 @@
"description": "Firefox Accounts monorepo",
"scripts": {
"authors": "git shortlog -s | cut -c8- | sort -f > AUTHORS",
"postinstall": "_scripts/install_all.sh",
"npm-ci-all": "lerna exec --parallel --ignore fxa-amplitude-send -- npm ci",
"postinstall": "_scripts/install-all.sh",
"audit": "lerna run audit --parallel",
"start": "_scripts/check_ports.sh && pm2 start mysql_servers.json && echo \"Use 'npm stop' to stop all the servers\"",
"stop": "pm2 kill",
"firefox": "./packages/fxa-dev-launcher/bin/fxa-dev-launcher",
"start-firefox": "npm run firefox",
"start": "nps --prefix=start",
"stop": "nps --prefix=stop",
"restart": "nps --prefix=restart",
"adb-reverse": "./_scripts/adb-reverse.sh",
"test": "_scripts/test-package.sh",
"config-fxios": "node _scripts/config-fxios.js",
"format": "lerna run format"
"format": "lerna run format",
"ports": "pm2 jlist | json -d'\t' -a -c 'this.pm2_env.env.PORT' pm2_env.env.PORT name"
},
"homepage": "https://github.com/mozilla/fxa",
"bugs": {
@ -27,6 +26,7 @@
"author": "Mozilla (https://mozilla.org/)",
"license": "MPL-2.0",
"dependencies": {
"@dannycoates/nps": "^5.9.12",
"diffparser": "^2.0.1",
"husky": "^4.2.3",
"lerna": "^3.20.2",
@ -73,7 +73,7 @@
},
"lint-staged": {
"*.js": [
"eslint -c .eslintrc",
"eslint -c _dev/.eslintrc",
"prettier --write"
],
"*.{ts,tsx}": [
@ -89,6 +89,7 @@
"devDependencies": {
"eslint": "^6.8.0",
"eslint-plugin-fxa": "^2.0.2",
"eslint-plugin-jest": "^23.8.2"
"eslint-plugin-jest": "^23.8.2",
"json": "^9.0.6"
}
}

Просмотреть файл

@ -1,5 +1,4 @@
{
"port": 10139,
"cookieName": "321done",
"client_id": "325b4083e32fe8e7",
"client_secret": "a084f4c36501ea1eb2de33258421af97b2e67ffbe107d2812f4a14f3579900ef",

1455
packages/123done/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -38,6 +38,7 @@
"eslint": "6.6.0",
"eslint-plugin-fxa": "2.0.1",
"npm-run-all": "4.1.5",
"pm2": "^4.2.3",
"prettier": "1.18.2"
},
"scripts": {
@ -45,7 +46,9 @@
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:eslint": "eslint .",
"postinstall": "bower install --config.interactive=false -s",
"start": "node server.js",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "npm run lint",
"format": "prettier '**' --write"
}

Просмотреть файл

@ -0,0 +1,32 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: '123done',
script: 'server.js',
cwd: __dirname,
max_restarts: '1',
env: {
CONFIG_123DONE: './config-local.json',
NODE_ENV: 'dev',
PORT: '8080',
},
min_uptime: '2m',
},
{
name: '321done',
script: 'server.js',
cwd: __dirname,
max_restarts: '1',
env: {
CONFIG_123DONE: './config-local-untrusted.json',
NODE_ENV: 'dev',
PORT: '10139',
},
min_uptime: '2m',
},
],
};

1349
packages/browserid-verifier/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -34,6 +34,7 @@
"eslint-plugin-fxa": "2.0.1",
"mocha": "5.2.0",
"npm-run-all": "4.1.5",
"pm2": "^4.2.3",
"prettier": "1.18.2",
"request": "2.88.0",
"should": "13.2.3",
@ -46,6 +47,9 @@
"lint:eslint": "eslint .",
"pretest": "npm run lint",
"test": "mocha --exit -t 5000 -R spec tests/*.js",
"format": "prettier '**' --write"
"format": "prettier '**' --write",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js"
}
}

Просмотреть файл

@ -0,0 +1,20 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'browserid',
script: 'server.js',
cwd: __dirname,
env: {
PORT: '5050',
IP_ADDRESS: '0.0.0.0',
FORCE_INSECURE_LOOKUP_OVER_HTTP: 'true',
},
max_restarts: '1',
min_uptime: '2m',
},
],
};

1473
packages/fortress/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -34,6 +34,7 @@
"eslint": "6.6.0",
"eslint-plugin-fxa": "2.0.1",
"npm-run-all": "4.1.5",
"pm2": "^4.2.3",
"prettier": "1.18.2"
},
"scripts": {
@ -41,7 +42,9 @@
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:eslint": "eslint .",
"postinstall": "bower install --config.interactive=false -s",
"start": "node server.js",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "npm run lint",
"format": "prettier '**' --write"
}

Просмотреть файл

@ -0,0 +1,20 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'fortress',
script: 'server.js',
cwd: __dirname,
max_restarts: '1',
env: {
CONFIG_FORTRESS: './config-local.json',
NODE_ENV: 'dev',
PORT: '9292',
},
min_uptime: '2m',
},
],
};

Просмотреть файл

@ -1,5 +0,0 @@
# The express server started by server/bin/fxa-admin-panel.ts runs at this port:
PUBLIC_URL=http://127.0.0.1:8091
# Then it proxies to this port, where the "react-scripts start" (webpack dev server) runs:
PORT=8092
BROWSER=none

1123
packages/fxa-admin-panel/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -3,10 +3,9 @@
"version": "0.1.0",
"description": "FxA Admin Panel",
"scripts": {
"start": "ts-node -P server/tsconfig.json server/bin/fxa-admin-panel.ts",
"start-dev": "NODE_ENV=development npm-run-all --parallel server:proxy server:react-scripts",
"server:proxy": "PROXY_STATIC_RESOURCES_FROM='http://127.0.0.1:8092' ts-node -P server/tsconfig.json server/bin/fxa-admin-panel.ts",
"server:react-scripts": "react-scripts start",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"lint:eslint": "eslint .",
"build": "npm-run-all build:client build:server",
"build:client": "react-scripts build",
@ -74,6 +73,7 @@
"eslint-plugin-fxa": "^2.0.1",
"eslint-plugin-jest": "^23.8.1",
"eslint-plugin-react": "^7.18.3",
"pm2": "^4.2.3",
"prettier": "^1.19.1",
"supertest": "^4.0.2",
"ts-jest": "^25.2.1",

Просмотреть файл

@ -0,0 +1,36 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'admin',
cwd: __dirname,
script: 'ts-node -P server/tsconfig.json server/bin/fxa-admin-panel.ts',
max_restarts: '1',
min_uptime: '2m',
env: {
LOGGING_FORMAT: 'pretty',
NODE_ENV: 'development',
NODE_OPTIONS: '--inspect=9140',
PROXY_STATIC_RESOURCES_FROM: 'http://127.0.0.1:8092',
CONFIG_FILES: 'config/secrets.json',
PORT: '8091',
},
},
{
name: 'admin-react',
cwd: __dirname,
script: 'react-scripts start',
max_restarts: '1',
min_uptime: '2m',
env: {
NODE_ENV: 'development',
PUBLIC_URL: 'http://127.0.0.1:8091',
BROWSER: 'NONE',
PORT: '8092',
},
},
],
};

1649
packages/fxa-admin-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -8,11 +8,11 @@
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:tslint": "./node_modules/tslint/bin/tslint -p .",
"watch": "tsc -w",
"start-dev": "NODE_ENV=development ts-node-dev ./src/bin/main.ts",
"start-dev-debug": "NODE_ENV=development ts-node-dev --inspect=0.0.0.0:9150 -- ./src/bin/main.ts",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "./node_modules/mocha/bin/mocha -r ts-node/register src/test/**/*.spec.ts src/test/**/**/*.spec.ts src/test/**/**/**/*.spec.ts",
"debug": "NODE_ENV=development nodemon --watch ./dist --inspect=0.0.0.0:5860 --nolazy ./dist/bin/main.js",
"email-bounce": "ts-node-dev ./scripts/email-bounce.ts"
"email-bounce": "ts-node ./scripts/email-bounce.ts"
},
"repository": {
"type": "git",
@ -61,11 +61,12 @@
"mocha": "^7.1.0",
"nodemon": "^2.0.2",
"npm-run-all": "^4.1.5",
"pm2": "^4.2.3",
"prettier": "^1.19.1",
"proxyquire": "^2.1.3",
"sinon": "^9.0.1",
"supertest": "^4.0.2",
"ts-node-dev": "^1.0.0-pre.44",
"ts-node": "^8.8.2",
"ts-sinon": "^1.0.25",
"tslint": "^6.1.0",
"tslint-config-prettier": "^1.18.0",

Просмотреть файл

@ -0,0 +1,23 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'admin-server',
script: 'ts-node src/bin/main.ts',
cwd: __dirname,
max_restarts: '1',
min_uptime: '2m',
env: {
NODE_ENV: 'development',
NODE_OPTIONS: '--inspect=9150',
TS_NODE_TRANSPILE_ONLY: 'true',
TS_NODE_FILES: 'true',
PORT: '8090' // TODO: this needs to get added to src/config.ts
},
watch: ['src']
}
]
};

Просмотреть файл

@ -93,7 +93,6 @@ envConfig = `${envConfig},${process.env.CONFIG_FILES || ''}`;
const files = envConfig.split(',').filter(fs.existsSync);
conf.loadFile(files);
conf.validate({ allowed: 'strict' });
const Config = conf;
export default Config;

1428
packages/fxa-auth-db-mysql/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -15,7 +15,10 @@
"lint": "npm-run-all --parallel lint:*",
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:eslint": "eslint .",
"start": "node ./bin/db_patcher.js >/dev/null && node ./bin/server.js",
"prestart": "../../_scripts/check-mysql.sh && node ./bin/db_patcher.js >/dev/null",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "npm run test-mysql && npm run test-server && npm run lint",
"test-mysql": "node ./bin/db_patcher.js >/dev/null && ./scripts/mocha-coverage.js test/backend test/local --exit",
"test-server": "./scripts/mocha-coverage.js db-server/test/local --exit",
@ -50,6 +53,7 @@
"nock": "8.0.0",
"npm-run-all": "4.1.5",
"nyc": "^14.1.1",
"pm2": "^4.2.3",
"prettier": "1.18.2",
"proxyquire": "1.7.10",
"restify-clients": "^2.6.7",

Просмотреть файл

@ -0,0 +1,19 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'auth-db',
script: './bin/server.js',
cwd: __dirname,
env: {
NODE_ENV: 'dev',
PORT: '8000',
},
max_restarts: '2',
min_uptime: '2m',
},
],
};

4
packages/fxa-auth-server/.vscode/tasks.json поставляемый
Просмотреть файл

@ -33,12 +33,12 @@
{
"label": "Stop PM2 Auth Server",
"type": "shell",
"command": "pm2 stop 'auth-server key server PORT 9000'"
"command": "pm2 stop auth"
},
{
"label": "Start PM2 Auth Server",
"type": "shell",
"command": "pm2 start 'auth-server key server PORT 9000'"
"command": "pm2 start auth"
}
]
}

2043
packages/fxa-auth-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -14,8 +14,10 @@
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:eslint": "eslint .",
"postinstall": "scripts/download_l10n.sh",
"start": "npm run gen-keys && node ./bin/key_server.js",
"start-dev-debug": "NODE_ENV=dev nodemon --inspect=0.0.0.0:9160 ./bin/key_server.js",
"prestart": "NODE_ENV=dev npm run gen-keys && ../../_scripts/check-mysql.sh",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "VERIFIER_VERSION=0 scripts/test-local.sh",
"test-ci": "npm run gen-keys && scripts/test-local.sh && npm run test-e2e",
"test-e2e": "NODE_ENV=dev mocha test/e2e",
@ -130,8 +132,10 @@
"mkdirp": "0.5.1",
"mocha": "5.2.0",
"nock": "10.0.2",
"nodemon": "^2.0.3",
"npm-run-all": "4.1.5",
"nyc": "^14.1.1",
"pm2": "^4.2.3",
"prettier": "^1.18.2",
"proxyquire": "2.0.0",
"read": "1.0.7",

Просмотреть файл

@ -0,0 +1,38 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'auth',
script: './bin/key_server.js',
cwd: __dirname,
env: {
DB: 'mysql',
NODE_ENV: 'dev',
NODE_OPTIONS: '--inspect=9160',
IP_ADDRESS: '0.0.0.0',
SIGNIN_UNBLOCK_FORCED_EMAILS: '^block.*@restmail\\.net$',
SIGNIN_CONFIRMATION_ENABLED: 'true',
SIGNIN_CONFIRMATION_FORCE_EMAIL_REGEX: '^sync.*@restmail\\.net$',
CONFIG_FILES: 'config/secrets.json',
PORT: '9000',
},
watch: ['bin', 'config', 'lib'],
max_restarts: '1',
min_uptime: '2m',
},
{
name: 'inbox',
script: 'test/mail_helper.js',
cwd: __dirname,
env: {
NODE_ENV: 'dev',
MAILER_PORT: '9001',
},
max_restarts: '1',
min_uptime: '2m',
},
],
};

Просмотреть файл

@ -16,6 +16,8 @@ DEFAULT_ARGS="--recursive --timeout 5000 --exit"
./scripts/gen_vapid_keys.js
./scripts/oauth_gen_keys.js
node ../fxa-auth-db-mysql/bin/db_patcher > /dev/null
npm run lint:eslint
grunt copyright
GLOB=$*
if [ -z "$GLOB" ]; then
@ -34,6 +36,3 @@ if [ -z "$GLOB" ]; then
else
./scripts/mocha-coverage.js $DEFAULT_ARGS $GLOB
fi
npm run lint:eslint
grunt copyright

1293
packages/fxa-content-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -8,8 +8,10 @@
"lint": "npm-run-all --parallel lint:*",
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"lint:eslint": "eslint app server tests --cache",
"start": "node scripts/check-local-config && grunt server",
"start-dev-debug": "node scripts/check-local-config && node --inspect server/bin/fxa-content-server.js",
"prestart": "node scripts/check-local-config && grunt l10n-create-json l10n-generate-tos-pp:app",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"start-production": "NODE_ENV=production grunt build && CONFIG_FILES=server/config/local.json,server/config/production.json grunt serverproc:dist",
"start-remote": "scripts/run_remote_dev.sh",
"test": "node tests/intern.js --unit=true",
@ -150,6 +152,7 @@
"jsqr": "1.2.0",
"npm-run-all": "4.1.5",
"otplib": "7.1.0",
"pm2": "^4.2.3",
"prettier": "^1.18.2",
"proxyquire": "1.7.4",
"request": "2.88.0",

Просмотреть файл

@ -0,0 +1,21 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'content',
script: 'node --inspect=9130 server/bin/fxa-content-server.js',
cwd: __dirname,
env: {
NODE_ENV: 'development',
CONFIG_FILES: 'server/config/local.json',
PORT: 3030,
},
watch: ['server'],
max_restarts: '1',
min_uptime: '2m',
},
],
};

Просмотреть файл

@ -2,40 +2,18 @@
DIR=$(dirname "$0")
# copied from /test/curl.sh
function check() {
# Real startup of the servers takes longer than `pm start`.
# In order to check their urls, we have to wait for them (2 minutes) and periodically
# check if their endpoints are available.
# Function takes following parameters:
# * $1 - an url of an endpoint to check
# * $2 [optional] - expected status code of a response from this endpoint. Defaults to 200.
RETRY=12
for i in $(eval echo "{1..$RETRY}"); do
if [ $(curl -s -o /dev/null --silent -w "%{http_code}" http://$1) == "${2:-200}" ]; then
return
else
if [ $i -lt $RETRY ]; then
sleep 10
fi
fi
done
exit 1
}
function test_suite() {
local suite=$1
local numGroups=6
for i in $(seq $numGroups)
do
node tests/intern.js --suites=${suite} --groupsCount=${numGroups} --groupNum=${i} --firefoxBinary=./firefox/firefox || \
node tests/intern.js --suites=${suite} --groupsCount=${numGroups} --groupNum=${i} --firefoxBinary=./firefox/firefox --grep="$(<rerun.txt)"
node tests/intern.js --suites="${suite}" --groupsCount=${numGroups} --groupNum="${i}" --firefoxBinary=./firefox/firefox || \
node tests/intern.js --suites="${suite}" --groupsCount=${numGroups} --groupNum="${i}" --firefoxBinary=./firefox/firefox --grep="$(<rerun.txt)"
done
}
cd $DIR/..
cd "$DIR/.."
mkdir -p config
cp ../version.json ./
@ -44,14 +22,26 @@ cp ../version.json config
npm run lint
cd ../../
npx pm2 start circleci_servers.json
npx lerna run start \
--scope "123done" \
--scope "browserid-verifier" \
--scope "fxa-auth-db-mysql" \
--scope "fxa-auth-server" \
--scope "fxa-content-server" \
--scope "fxa-payments-server" \
--scope "fxa-profile-server" \
--scope "fxa-support-panel" \
--concurrency 1 > /dev/null
npx pm2 ls
# ensure email-service is ready
_scripts/check-url.sh 127.0.0.1:8001/__heartbeat__
# ensure payments-server is ready
_scripts/check-url.sh 127.0.0.1:3031/__lbheartbeat__
# ensure content-server is ready
_scripts/check-url.sh 127.0.0.1:3030/bundle/app.bundle.js
cd packages/fxa-content-server
mozinstall /firefox.tar.bz2
# ensure email-service is ready
check 127.0.0.1:8001/__heartbeat__
check 127.0.0.1:3031/__lbheartbeat__
test_suite circle
# node 5 currently has the least work to do in the above tests

Просмотреть файл

@ -41,8 +41,7 @@ if (!userAgent.isToVersionStringSupported()) {
process.exit(1);
}
// This can't possibly be best way to librar-ify this module.
const isMain = process.argv[1] === __filename;
const isMain = require.main === module;
if (isMain) {
// ./server is our current working directory
process.chdir(path.dirname(__dirname));

1285
packages/fxa-customs-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -47,6 +47,7 @@
"load-grunt-tasks": "3.5.0",
"npm-run-all": "^4.1.5",
"npmshrink": "1.0.1",
"pm2": "^4.2.3",
"prettier": "^1.18.2",
"proxyquire": "2.1.0",
"request": "2.85.0",

1752
packages/fxa-event-broker/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -10,8 +10,10 @@
"watch": "tsc -w",
"test": "mocha -r ts-node/register src/test/**/*.spec.ts src/test/**/**/*.spec.ts",
"start-prod": "npm run build && node ./dist/bin/worker.js",
"start": "npm run build && NODE_ENV=development PUBSUB_EMULATOR_HOST=localhost:8085 FIRESTORE_EMULATOR_HOST=localhost:9090 node ./dist/bin/workerDev.js",
"start-dev-debug": "NODE_ENV=development PUBSUB_EMULATOR_HOST=localhost:8085 FIRESTORE_EMULATOR_HOST=localhost:9090 ts-node-dev --inspect=0.0.0.0:9180 ./src/bin/workerDev.ts"
"prestart": "../../_scripts/check-url.sh 127.0.0.1:9000/__heartbeat__",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js"
},
"repository": {
"type": "git",
@ -66,9 +68,10 @@
"nodemon": "^2.0.2",
"npm-run-all": "^4.1.5",
"p-event": "^4.1.0",
"pm2": "^4.2.3",
"prettier": "1.19.1",
"sinon": "9.0.0",
"ts-node-dev": "^1.0.0-pre.44",
"ts-node": "^8.8.2",
"ts-sinon": "1.0.25",
"tslint": "^6.0.0",
"tslint-config-prettier": "^1.18.0",

Просмотреть файл

@ -0,0 +1,26 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'event-broker',
script: 'ts-node src/bin/workerDev.ts',
cwd: __dirname,
max_restarts: '1',
env: {
NODE_ENV: 'development',
NODE_OPTIONS: '--inspect=9180',
TS_NODE_TRANSPILE_ONLY: 'true',
TS_NODE_FILES: 'true',
WORKER_HOST: '0.0.0.0',
PUBSUB_EMULATOR_HOST: 'localhost:8085',
FIRESTORE_EMULATOR_HOST: 'localhost:9090',
PUBSUB_PROXY_PORT: '8090'
},
watch: ['src', 'config'],
min_uptime: '2m'
}
]
};

Просмотреть файл

@ -64,7 +64,7 @@ describe('Client Webhook Service', () => {
});
describe('using local Firestore', () => {
before(() => {
before(async () => {
const fs = new Firestore({
customHeaders: {
Authorization: 'Bearer owner'
@ -76,10 +76,14 @@ describe('Client Webhook Service', () => {
});
db = new FirestoreDatastore({ prefix: 'fxatest-' }, fs);
service = new ClientWebhookService(logger, 600, db);
await service.start();
});
after(async () => {
await service.stop();
});
it('handles immediate updates', async () => {
await service.start();
cassert.deepEqual(service.serviceData(), {});
// Manually insert into the db
const document = (db as any).db.doc('fxatest-clients/test');
@ -89,7 +93,6 @@ describe('Client Webhook Service', () => {
// Manually delete from the db
await document.delete();
cassert.deepEqual(service.serviceData(), {});
await service.stop();
});
});
});

Просмотреть файл

@ -1,5 +0,0 @@
# The express server started by server/bin/fxa-payments-server.js runs at this port:
PUBLIC_URL=http://127.0.0.1:3031
# Then it proxies to this port, where the "react-scripts start" (webpack dev server) runs:
PORT=3032
BROWSER=none

1074
packages/fxa-payments-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -7,12 +7,9 @@
"lint:eslint": "eslint .",
"lint:sass": "sass-lint -v",
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"start": "node server/bin/fxa-payments-server.js",
"start-dev": "npm-run-all --parallel server:proxy server:react-scripts",
"start-dev-debug": "npm-run-all --parallel server:proxy-debug server:react-scripts",
"server:proxy": "PROXY_STATIC_RESOURCES_FROM='http://127.0.0.1:3032' node server/bin/fxa-payments-server.js",
"server:proxy-debug": "PROXY_STATIC_RESOURCES_FROM='http://127.0.0.1:3032' node --inspect=0.0.0.0:9170 server/bin/fxa-payments-server.js",
"server:react-scripts": "react-scripts start",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"build": "react-scripts build",
"eject": "react-scripts eject",
"test": "npm-run-all test:*",
@ -83,6 +80,7 @@
"nock": "^10.0.6",
"npm-run-all": "^4.1.5",
"nyc": "^14.1.0",
"pm2": "^4.2.3",
"prettier": "^1.19.1",
"redux-devtools-extension": "^2.13.8",
"sass-lint": "^1.13.1",

Просмотреть файл

@ -0,0 +1,36 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'payments',
cwd: __dirname,
script: 'server/bin/fxa-payments-server.js',
max_restarts: '1',
min_uptime: '2m',
env: {
LOGGING_FORMAT: 'pretty',
NODE_ENV: 'development',
NODE_OPTIONS: '--inspect=9170',
PROXY_STATIC_RESOURCES_FROM: 'http://127.0.0.1:3032',
CONFIG_FILES: 'config/secrets.json',
PORT: '3031',
},
},
{
name: 'payments-react',
cwd: __dirname,
script: 'react-scripts start',
max_restarts: '1',
min_uptime: '2m',
env: {
NODE_ENV: 'development',
PUBLIC_URL: 'http://127.0.0.1:3031',
BROWSER: 'NONE',
PORT: '3032',
},
},
],
};

1533
packages/fxa-profile-server/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -8,8 +8,11 @@
"lint:eslint": "eslint .",
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"outdated": "npm outdated --depth 0 || exit 0",
"preinstall": "./scripts/check_gm.sh && mkdir -p var/public/",
"start": "scripts/run_dev.js",
"preinstall": "./scripts/check_gm.sh",
"prestart": "mkdirp var/public",
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js",
"test": "scripts/test-local.sh",
"format": "prettier '**' --write"
},
@ -54,6 +57,7 @@
"nock": "8.0.0",
"npm-run-all": "^4.1.5",
"nyc": "^14.1.1",
"pm2": "^4.2.3",
"pngparse": "2.0.1",
"prettier": "^1.18.2",
"rimraf": "2.5.3",

Просмотреть файл

@ -0,0 +1,45 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'profile',
script: 'bin/server.js',
cwd: __dirname,
max_restarts: '1',
env: {
NODE_ENV: 'development',
HOST: '0.0.0.0',
DB: 'mysql',
PORT: '1111',
},
min_uptime: '2m',
},
{
name: 'profile-worker',
script: 'bin/worker.js',
cwd: __dirname,
max_restarts: '1',
env: {
NODE_ENV: 'development',
HOST: '0.0.0.0',
DB: 'mysql',
},
min_uptime: '2m',
},
{
name: 'profile-static',
script: 'bin/_static.js',
cwd: __dirname,
max_restarts: '1',
env: {
NODE_ENV: 'development',
HOST: '0.0.0.0',
DB: 'mysql',
},
min_uptime: '2m',
},
],
};

Просмотреть файл

@ -4,6 +4,7 @@ set -e
rm -rf coverage
rm -rf .nyc_output
mkdir -p var/public
if [ -z "$NODE_ENV" ]; then export NODE_ENV=test; fi;

1444
packages/fxa-support-panel/package-lock.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -12,10 +12,9 @@
"audit": "npm audit --json | audit-filter --nsp-config=.nsprc --audit=-",
"test": "./node_modules/mocha/bin/mocha -r ts-node/register test/**/*.spec.ts test/**/**/*.spec.ts",
"shrink": "npmshrink && npm run postinstall",
"watch": "tsc -w",
"start-dev": "npm run build && node dist/bin/worker.js",
"start": "NODE_ENV=production node dist/bin/worker.js 2>&1",
"debug": "NODE_ENV=development nodemon --legacy-watch --watch ./dist --inspect=0.0.0.0:5858 --nolazy dist/bin/worker.js"
"start": "pm2 start pm2.config.js",
"stop": "pm2 stop pm2.config.js",
"restart": "pm2 restart pm2.config.js"
},
"private": true,
"repository": {
@ -57,6 +56,7 @@
"nodemon": "^1.19.4",
"npm-run-all": "^4.1.5",
"npmshrink": "2.0.0",
"pm2": "^4.2.3",
"prettier": "^1.19.1",
"sinon": "^7.5.0",
"ts-node": "^8.4.1",

Просмотреть файл

@ -0,0 +1,24 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
module.exports = {
apps: [
{
name: 'support',
cwd: __dirname,
script: 'ts-node bin/worker.ts',
max_restarts: '1',
min_uptime: '2m',
env: {
LOGGING_FORMAT: 'pretty',
NODE_ENV: 'development',
NODE_OPTIONS: '--inspect=9190',
TS_NODE_TRANSPILE_ONLY: 'true',
TS_NODE_FILES: 'true',
PORT: '7100',
},
watch: ['bin', 'config', 'lib'],
},
],
};

Просмотреть файл

@ -1,101 +0,0 @@
#!/bin/bash -ex
function check() {
# Real startup of the servers takes longer than `pm start`.
# In order to check their urls, we have to wait for them (2 minutes) and periodically
# check if their endpoints are available.
# Function takes following parameters:
# * $1 - an url of an endpoint to check
# * $2 [optional] - expected status code of a response from this endpoint. Defaults to 200.
RETRY=12
for i in $(eval echo "{1..$RETRY}"); do
if [ $(curl -s -o /dev/null --silent -w "%{http_code}" http://$1) == "${2:-200}" ]; then
return
else
if [ $i -lt $RETRY ]; then
sleep 10
fi
fi
done
exit 1
}
function check_redis() {
RETRY=12
for i in $(eval echo "{1..$RETRY}"); do
if echo PING | nc localhost 6379 | grep -q 'PONG'; then
return
else
if [ $i -lt $RETRY ]; then
sleep 10
fi
fi
done
exit 1
}
function check_memcached() {
RETRY=12
for i in $(eval echo "{1..$RETRY}"); do
if echo stats | nc localhost 11211 | grep -q 'STAT'; then
return
else
if [ $i -lt $RETRY ]; then
sleep 10
fi
fi
done
exit 1
}
function check_mysql() {
RETRY=12
for i in $(eval echo "{1..$RETRY}"); do
if echo PING | nc localhost 3306 | grep -q 'mysql'; then
return
else
if [ $i -lt $RETRY ]; then
sleep 10
fi
fi
done
exit 1
}
# content
check 127.0.0.1:3030
check 127.0.0.1:1114
check 127.0.0.1:10140 400
# auth
check 127.0.0.1:9000
check 127.0.0.1:9001 404
# oauth
# check 127.0.0.1:9010
# 123done and 321done untrusted apps
check 127.0.0.1:8080
check 127.0.0.1:10139
# profile server
check 127.0.0.1:1111
check 127.0.0.1:1112 404
check 127.0.0.1:5050 405
# sync server
# address of the endpoint have to be the same as a public_url in settings
check 127.0.0.1:5000
# auth-db
check localhost:8000
# redis server
check_redis
# memcached
check_memcached

Просмотреть файл

@ -1,7 +0,0 @@
#!/bin/bash -ex
. test/curl.sh
##additional tests to be performed in mysql mode
# mysql
check_mysql