From 4b38ff17619dfc18a2b7415b64772bf6a939f0f3 Mon Sep 17 00:00:00 2001 From: xmlking Date: Sun, 7 Oct 2018 13:40:43 -0700 Subject: [PATCH] feat(dependencies): nrwl/nx -> 6.4.0 , rebuild apps/api module with nx node-apps --- .deploy/api/prod.dockerfile | 2 +- .deploy/transporter/README.md | 30 +++---- .deploy/transporter/config/pipeline.js | 10 +-- PLAYBOOK-NEST.md | 3 +- PLAYBOOK.md | 18 ++-- README.md | 2 +- angular.json | 63 +++++++++++-- development.env | 6 +- docker-compose.yml | 85 ++++++++++-------- nx.json | 6 ++ package-lock.json | 117 +++++++++++++++++++++---- package.json | 20 ++--- production.env | 10 +-- test.env | 6 +- 14 files changed, 266 insertions(+), 112 deletions(-) diff --git a/.deploy/api/prod.dockerfile b/.deploy/api/prod.dockerfile index 813a5ab47..2a9d9778c 100644 --- a/.deploy/api/prod.dockerfile +++ b/.deploy/api/prod.dockerfile @@ -18,7 +18,7 @@ RUN npm ci COPY . . -RUN $(npm bin)/tsc -p ./apps/api/tsconfig.json +RUN $(npm bin)/tsc -p ./apps/api/tsconfig.app.json EXPOSE 3000 diff --git a/.deploy/transporter/README.md b/.deploy/transporter/README.md index c1b647ff2..968e46c9a 100644 --- a/.deploy/transporter/README.md +++ b/.deploy/transporter/README.md @@ -3,47 +3,47 @@ Transporter This is a docker image, which includes a `Transporter` application with a predefined, parameterized pipeline definition. -The predefined pipeline migrates the current state of a MongoDB database into Elasticsearch, and then continues with syncing the changes too. +The predefined pipeline migrates the current state of a PostgreSQL database into Elasticsearch, and then continues with syncing the changes too. - +---------+ +-------------+ +---------------+ - | mongodb |---->| transporter |---->| elasticsearch | - +---------+ +-------------+ +---------------+ + +----------+ +-------------+ +---------------+ + | postgres |---->| transporter |---->| elasticsearch | + +----------+ +-------------+ +---------------+ ### Build ```bash -# build mongo-to-es transporter docker image +# build postgres-to-es transporter docker image cd .deploy/transporter -docker build --tag=xmlking/mongo-to-es-transporter:latest . +docker build --tag=xmlking/postgres-to-es-transporter:latest . # Tag -docker tag xmlking/mongo-to-es-transporter:latest xmlking/mongo-to-es-transporter:0.5.2 +docker tag xmlking/postgres-to-es-transporter:latest xmlking/postgres-to-es-transporter:0.5.2 # Push -docker push xmlking/mongo-to-es-transporter:0.5.2 -docker push xmlking/mongo-to-es-transporter:latest +docker push xmlking/postgres-to-es-transporter:0.5.2 +docker push xmlking/postgres-to-es-transporter:latest ``` ### Run The configuration parameters for run: -- `DB_NAME`: The name of the database to transport from MongoDD to ES. +- `DB_NAME`: The name of the database to transport from PostgreSQL to ES. It is also the name of the index will be created on ES. Default: `test`. -- `MONGODB_URI`: The full URI of the MongoDB server, including credentials, if there is any. - Use one of the following formats: `mongodb://:password@host:port` or `mongodb://host:port`. - Default: `mongodb://localhost:27017`. +- `POSTGRES_URI`: The full URI of the PostgreSQL server, including credentials, if there is any. + Use one of the following formats: `postgres://:password@host:port` or `postgres://host:port`. + Default: `postgres://localhost:5432`. - `ELASTICSEARCH_URI`: The full URI of the Elasticsearch server, including credentials if there is any. Use one of the following formats: `http://:password@host:port` or `http://host:port`. Default: `http://localhost:9200`. ```bash - docker run -it --rm xmlking/mongo-to-es-transporter:latest + docker run -it --rm xmlking/postgres-to-es-transporter:latest ``` ### Docker Compose ```bash -docker-compose up mongodb +docker-compose up postgres docker-compose up elasticsearch docker-compose up kibana docker-compose up transporter diff --git a/.deploy/transporter/config/pipeline.js b/.deploy/transporter/config/pipeline.js index 23b88fdbe..5db16f7b6 100644 --- a/.deploy/transporter/config/pipeline.js +++ b/.deploy/transporter/config/pipeline.js @@ -1,5 +1,5 @@ -var source = mongodb({ - "uri": "${MONGODB_URI}/${DB_NAME}?authSource=admin", +var source = postgres({ + "uri": "${POSTGRES_URI}/${DB_NAME}", // "timeout": "30s", // "tail": false, "tail": true, @@ -11,7 +11,7 @@ var source = mongodb({ "bulk": true // "collection_filters": "{}", // "read_preference": "Primary" -}) +}); var sink = elasticsearch({ "uri": "${ELASTICSEARCH_URI}/${DB_NAME}" @@ -19,6 +19,6 @@ var sink = elasticsearch({ // "aws_access_key": "ABCDEF", // used for signing requests to AWS Elasticsearch service // "aws_access_secret": "ABCDEF" // used for signing requests to AWS Elasticsearch service // "parent_id": "elastic_parent" // defaults to "elastic_parent" parent identifier for Elasticsearch -}) +}); -t.Source("source", source, "/.*/").Save("sink", sink, "/.*/") +t.Source("source", source, "/.*/").Save("sink", sink, "/.*/"); diff --git a/PLAYBOOK-NEST.md b/PLAYBOOK-NEST.md index 63609d2cb..fa763e5b1 100644 --- a/PLAYBOOK-NEST.md +++ b/PLAYBOOK-NEST.md @@ -16,8 +16,7 @@ npm install -g @nestjs/cli ### Scaffold Project > adding code dependencies ```bash -nest new api -nest new api "my api" "0.1.0-SNAPSHOT" "Sumanth Chinthagunta " -d +nest new apps/api "my api" "0.1.0-SNAPSHOT" "Sumanth Chinthagunta " -d npm i @nestjs/core @nestjs/common npm i @nestjs/microservices @nestjs/websockets @nestjs/testing @nestjs/typeorm typeorm mongodb diff --git a/PLAYBOOK.md b/PLAYBOOK.md index 92e07ff7d..88f1194b2 100644 --- a/PLAYBOOK.md +++ b/PLAYBOOK.md @@ -9,11 +9,11 @@ Do-it-yourself step-by-step instructions to create this project structure from s | Software | Version | Optional | |-------------------------------|----------|----------| -| Node | v10.7.0 | | +| Node | v10.11.0 | | | NPM | v6.4.0 | | -| Angular CLI | v6.0.8 | | +| Angular CLI | v6.2.4 | | | @nrwl/schematics | v6.4.0 | | -| @nestjs/cli | v5.3.0 | | +| @nestjs/cli | v5.5.0 | | ### Install Prerequisites ```bash @@ -56,7 +56,7 @@ npm remove -g semantic-release-cli npm remove -g commitizen npm install -g @angular/cli -npm install -g @nrwl/schematics@6.4.0-beta.3 +npm install -g @nrwl/schematics npm install -g @nestjs/cli npm install -g semantic-release-cli npm install -g commitizen @@ -95,6 +95,7 @@ cd ngx-starter-kit # setup your workspace to run tests with jest. ng generate jest +# Ref: https://nrwl.io/nx/unit-testing-with-jest # you may have to manually remove karma files (karma.conf.js) and dependencies from package.json # make sure we are up-to-date @@ -106,6 +107,9 @@ ng update --all # generate webapp app ng g app webapp --routing --style=scss --prefix=ngx --unit-test-runner=jest --tags=app-module + +# generate api app +ng g node-app api --framework=express --unit-test-runner=jest --tags=api-module --dry-run ``` #### Dependencies @@ -201,9 +205,9 @@ ng g lib experiments --routing --lazy --prefix=ngx --parent-module=libs/dashb ng g lib widgets --routing --lazy --prefix=ngx --parent-module=libs/dashboard/src/lib/dashboard.module.ts --unit-test-runner=jest --tags=child-module ng g lib grid --routing --lazy --prefix=ngx --parent-module=libs/dashboard/src/lib/dashboard.module.ts --unit-test-runner=jest --tags=child-module -ng g lib animations --nomodule -tags=utils --unit-test-runner=jest --dry-run -ng g lib Tree --nomodule --publishable=true --tags=utils --unit-test-runner=jest --dry-run -ng g lib utils --nomodule --tags=utils --unit-test-runner=jest --dry-run +ng g lib animations --module false -tags=utils --unit-test-runner=jest --dry-run +ng g lib Tree --module false --publishable=true --tags=utils --unit-test-runner=jest --dry-run +ng g lib utils --module false --tags=utils --unit-test-runner=jest --dry-run # add `core` module which will be only inported into root/app module. ng g lib core --prefix=ngx --tags=core-module --unit-test-runner=jest --dry-run diff --git a/README.md b/README.md index 9a7630925..f41adb57e 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ This project was generated with [Angular CLI](https://github.com/angular/angular live [Demo](https://xmlking.github.io/ngx-starter-kit/index.html) -**MANT** (*MongoDB* - *Angular* - *NestJS* - *TypeScript*) Stack +**PANT** (*PostgreSQL* - *Angular* - *NestJS* - *TypeScript*) Stack ## Install diff --git a/angular.json b/angular.json index de44ff30a..6c1375db1 100644 --- a/angular.json +++ b/angular.json @@ -199,14 +199,15 @@ } }, "webapp-e2e": { - "root": "apps/webapp-e2e/", + "root": "apps/webapp-e2e", + "sourceRoot": "apps/webapp-e2e/src", "projectType": "application", "architect": { "e2e": { - "builder": "@angular-devkit/build-angular:protractor", + "builder": "@nrwl/builders:jest", "options": { - "protractorConfig": "apps/webapp-e2e/protractor.conf.js", - "devServerTarget": "webapp:serve" + "jestConfig": "", + "tsConfig": "apps/webapp-e2e/tsconfig.e2e.json" }, "configurations": { "production": { @@ -229,12 +230,41 @@ "root": "apps/api", "sourceRoot": "apps/api/src", "projectType": "application", + "prefix": "api", + "schematics": {}, "architect": { + "build": { + "builder": "@nrwl/builders:node-build", + "options": { + "outputPath": "dist/apps/api", + "main": "apps/api/src/main.ts", + "tsConfig": "apps/api/tsconfig.app.json", + "showCircularDependencies": false + }, + "configurations": { + "production": { + "optimization": true, + "extractLicenses": true, + "fileReplacements": [ + { + "replace": "apps/api/src/environments/environment.ts", + "with": "apps/api/src/environments/environment.prod.ts" + } + ] + } + } + }, + "serve": { + "builder": "@nrwl/builders:node-execute", + "options": { + "buildTarget": "api:build" + } + }, "lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": [ - "apps/api/tsconfig.json", + "apps/api/tsconfig.app.json", "apps/api/tsconfig.spec.json" ], "exclude": [ @@ -251,6 +281,29 @@ } } }, + "api-e2e": { + "root": "apps/api-e2e", + "sourceRoot": "apps/api-e2e/src", + "projectType": "application", + "architect": { + "test": { + "builder": "@nrwl/builders:jest", + "options": { + "jestConfig": "apps/api-e2e/jest.config.js", + "tsConfig": "apps/api-e2e/tsconfig.e2e.json" + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": "apps/api-e2e/tsconfig.e2e.json", + "exclude": [ + "**/node_modules/**" + ] + } + } + } + }, "navigator": { "root": "libs/navigator", "sourceRoot": "libs/navigator/src", diff --git a/development.env b/development.env index 05e00879e..80cd4abb5 100644 --- a/development.env +++ b/development.env @@ -9,11 +9,11 @@ ALLOW_WHITE_LIST=::ffff:127.0.0.1,::1 LOG_LEVEL=debug # DB Connection -TYPEORM_CONNECTION=mongodb +TYPEORM_CONNECTION=postgres TYPEORM_HOST=localhost -TYPEORM_PORT=27017 +TYPEORM_PORT=5432 TYPEORM_DATABASE=cockpit -TYPEORM_USERNAME=mdbuser +TYPEORM_USERNAME=cockpit TYPEORM_PASSWORD=cockpit123 # ORM Config diff --git a/docker-compose.yml b/docker-compose.yml index 3da82257a..4021b06cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,27 +8,41 @@ services: environment: KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: admin123 - DB_VENDOR: H2 KEYCLOAK_USER_CACHE_ENABLED: 'false' KEYCLOAK_REALM_CACHE_ENABLED: 'false' + DB_VENDOR: POSTGRES + DB_ADDR: postgres + DB_DATABASE: keycloak + DB_USER: keycloak + DB_PASSWORD: keycloak123 ports: - '9080:9080' - '9444:9443' - '10990:10990' - mongodb: - image: bitnami/mongodb:latest - container_name: mongodb - ports: - - '27017:27017' + depends_on: + - postgres + + postgres: + image: postgres:alpine + container_name: postgres environment: - - MONGODB_REPLICA_SET_MODE=primary - - MONGODB_ROOT_PASSWORD=cockpit321 - - MONGODB_DATABASE=cockpit - - MONGODB_USERNAME=mdbuser - - MONGODB_PASSWORD=cockpit123 - - MONGODB_REPLICA_SET_KEY=replicasetkey123 + POSTGRES_DB: postgres + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres321 + COCKPIT_POSTGRES_DB: cockpit + COCKPIT_POSTGRES_USER: cockpit + COCKPIT_POSTGRES_PASSWORD: cockpit123 + KEYCLOAK_POSTGRES_DB: keycloak + KEYCLOAK_POSTGRES_USER: keycloak + KEYCLOAK_POSTGRES_PASSWORD: keycloak123 + ports: + - '5432:5432' + healthcheck: + test: ['CMD-SHELL', 'psql postgres://$${POSTGRES_USER}:$${POSTGRES_PASSWORD}@localhost:5432/$${POSTGRES_DB} || exit 1'] volumes: - - 'mongodb_primary_data:/bitnami' + - postgres_data:/var/lib/postgresql/data + - .deploy/postgres/scripts/create_databases.sh:/docker-entrypoint-initdb.d/10-create_databases.sh:ro + api: build: context: . @@ -40,7 +54,8 @@ services: ports: - '3000:3000' depends_on: - - mongodb + - postgres + web: build: context: . @@ -59,46 +74,42 @@ services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.4.0 container_name: elasticsearch -# ulimits: -# memlock: -# soft: -1 -# hard: -1 -# volumes: -# - esdata1:/usr/share/elasticsearch/data + # ulimits: + # memlock: + # soft: -1 + # hard: -1 + # volumes: + # - esdata1:/usr/share/elasticsearch/data environment: - - discovery.type=single-node + discovery.type: single-node ports: - - '9200:9200' + - '9200:9200' links: - - 'mongodb' + - 'postgres' kibana: image: docker.elastic.co/kibana/kibana:6.4.0 container_name: kibana -# volumes: -# - ./kibana.yml:/usr/share/kibana/config/kibana.yml + # volumes: + # - ./kibana.yml:/usr/share/kibana/config/kibana.yml links: - - 'elasticsearch' + - 'elasticsearch' ports: - - '5601:5601' + - '5601:5601' transporter: - image: xmlking/mongo-to-es-transporter:latest + image: xmlking/postgres-to-es-transporter:latest container_name: transporter environment: DB_NAME: cockpit - MONGODB_URI: "mongodb://root:cockpit321@mongodb:27017" - ELASTICSEARCH_URI: "http://elasticsearch:9200" + MONGODB_URI: 'postgres://postgres:postgres321@postgres:5432' + ELASTICSEARCH_URI: 'http://elasticsearch:9200' links: - - 'mongodb' - - 'elasticsearch' + - 'postgres' + - 'elasticsearch' volumes: uploads: - driver: local + postgres_data: mongodb_primary_data: - driver: local mongodb_secondary_data: - driver: local esdata1: - driver: local esdata2: - driver: local diff --git a/nx.json b/nx.json index e1948792d..96dd909c9 100644 --- a/nx.json +++ b/nx.json @@ -24,6 +24,12 @@ "api-module" ] }, + "api-e2e": { + "tags": [], + "implicitDependencies": [ + "api" + ] + }, "navigator": { "tags": [ "private-module", diff --git a/package-lock.json b/package-lock.json index 12ac0d1cc..8e1a183bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1359,9 +1359,9 @@ "dev": true }, "@nrwl/builders": { - "version": "6.4.0-beta.3", - "resolved": "https://registry.npmjs.org/@nrwl/builders/-/builders-6.4.0-beta.3.tgz", - "integrity": "sha512-wJyXb5cmS42Kq4ldMzh90GOqzjX51wnCmHlVqiiUNYu/MNrI37sgKT41J7/SQbzy2IHWzgm3QTzvcFDrHfC76A==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@nrwl/builders/-/builders-6.4.0.tgz", + "integrity": "sha512-umWQRGTUZ7dbVFhgy5YzL7nkHfGsSgpKZ4amRxMXozirfC8Bu+5eNL5Can753KxQ3p9q3OIyEjAA5CdXHZnkXQ==", "dev": true, "requires": { "@angular-devkit/architect": "~0.8.0", @@ -1609,14 +1609,14 @@ } }, "@nrwl/nx": { - "version": "6.4.0-beta.3", - "resolved": "https://registry.npmjs.org/@nrwl/nx/-/nx-6.4.0-beta.3.tgz", - "integrity": "sha512-1699AkTdl0eiV5qtfajcVdZfqrMZ/sxwOKWIwTsAMF6d/9diRx3TxnDxH9mr519eh5AN8AITn7PuESjfvKTzsg==" + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@nrwl/nx/-/nx-6.4.0.tgz", + "integrity": "sha512-e09hYukjDd9piUj7+CHcJGN1PJNmQ77Wp7qrmSSkY3YOC46SntpDsC9GTwjxaJzw/GXF26LjAms4MVDyty3lnQ==" }, "@nrwl/schematics": { - "version": "6.4.0-beta.3", - "resolved": "https://registry.npmjs.org/@nrwl/schematics/-/schematics-6.4.0-beta.3.tgz", - "integrity": "sha512-CK03IDu9a7DChSQ3x3HnyGU8H1TcDDDI1nmCvc1zgs1Q+pTc9BK08cwkEiEhqSVDj/ZB7ghoBeKG+7WnOK8dcA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@nrwl/schematics/-/schematics-6.4.0.tgz", + "integrity": "sha512-KPE8qDSGsJWbI99osctREgIqjj9pFxKPEqQ36JPtEA4mAWJbR6NUykOpbh2LWl7V/kMSLKGacmOLEOjrrpyKeA==", "dev": true, "requires": { "@types/yargs": "^11.0.0", @@ -5039,6 +5039,11 @@ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, + "buffer-writer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz", + "integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg=" + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", @@ -18959,6 +18964,11 @@ "semver": "^5.1.0" } }, + "packet-reader": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz", + "integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=" + }, "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", @@ -19206,6 +19216,56 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "pg": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/pg/-/pg-7.5.0.tgz", + "integrity": "sha512-VFyAnp8xsMZp8nwZnMp7lmU5QcWDOZSI3IDNcWv6pblsiOXis5o7lD7/zzVK1Z1JTBiIDDGQAMbFMkiUzCL59A==", + "requires": { + "buffer-writer": "1.0.1", + "packet-reader": "0.3.1", + "pg-connection-string": "0.1.3", + "pg-pool": "~2.0.3", + "pg-types": "~1.12.1", + "pgpass": "1.x", + "semver": "4.3.2" + }, + "dependencies": { + "semver": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz", + "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c=" + } + } + }, + "pg-connection-string": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz", + "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc=" + }, + "pg-pool": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.3.tgz", + "integrity": "sha1-wCIDLIlJ8xKk+R+2QJzgQHa+Mlc=" + }, + "pg-types": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz", + "integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=", + "requires": { + "postgres-array": "~1.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.0", + "postgres-interval": "^1.1.0" + } + }, + "pgpass": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz", + "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=", + "requires": { + "split": "^1.0.0" + } + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -19436,6 +19496,29 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, + "postgres-array": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz", + "integrity": "sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ==" + }, + "postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" + }, + "postgres-date": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.3.tgz", + "integrity": "sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=" + }, + "postgres-interval": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.1.2.tgz", + "integrity": "sha512-fC3xNHeTskCxL1dC8KOtxXt7YeFmlbTYtn7ul8MkVERuTmf7pI4DrkAxcw3kh1fQ9uz4wQmd03a1mRiXUZChfQ==", + "requires": { + "xtend": "^4.0.0" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -20629,9 +20712,9 @@ } }, "rxjs-tslint-rules": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/rxjs-tslint-rules/-/rxjs-tslint-rules-4.9.0.tgz", - "integrity": "sha512-KvZ8t42xTlStuSPqVMOqrkTnnJlEQNWVr6u/FTSGBFNr85Rrj/yjrXQC41BiAdDJx8k+Tcv4Y4Ufyj/XSRob4w==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rxjs-tslint-rules/-/rxjs-tslint-rules-4.10.0.tgz", + "integrity": "sha512-5mjt+gKdnYLMplZfvhwrgXdpGMyzhlyzUWN3KNdu6IOiPzSfPeDXvsThg37l70Lt/JcBP7PBVhHrbuEJjwcpcA==", "dev": true, "requires": { "@phenomnomnominal/tsquery": "^2.0.0", @@ -21900,7 +21983,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, "requires": { "through": "2" } @@ -23100,8 +23182,7 @@ "through": { "version": "2.3.8", "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.3", @@ -23341,9 +23422,9 @@ "dev": true }, "ts-jest": { - "version": "23.10.3", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.10.3.tgz", - "integrity": "sha512-Lgyfw1MYPfqAs1qrFBmqXu8LRrde8ItH70pmp1iQuRbkVXaap7QcaEpN+yiSxuppfvO8rqezVv8wOYZkKhR5wA==", + "version": "23.10.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.10.4.tgz", + "integrity": "sha512-oV/wBwGUS7olSk/9yWMiSIJWbz5xO4zhftnY3gwv6s4SMg6WHF1m8XZNBvQOKQRiTAexZ9754Z13dxBq3Zgssw==", "dev": true, "requires": { "bs-logger": "0.x", diff --git a/package.json b/package.json index 177f6ec24..4560abbd3 100644 --- a/package.json +++ b/package.json @@ -55,15 +55,15 @@ "api:start:debug": "nodemon --config ./apps/api/nodemon-debug.json", "api:start:prod": "node dist/apps/api/main.js", "api:start:hmr": "node dist/apps/api/server", - "api:prestart:prod": "rimraf dist && tsc -p ./apps/api/tsconfig.json", + "api:prestart:prod": "rimraf dist && tsc -p ./apps/api/tsconfig.app.json", "api:webpack": "webpack --config ./apps/api/webpack.config.js", "// - API Test": "API Testing", "api:test": "jest --projects=apps/api --roots=src", "api:test:watch": "jest --projects=apps/api --roots=src --watch", "api:test:cov": "jest --projects=apps/api --coverage", - "api:test:ci": "jest --projects=apps/api --roots=src --runInBand", - "api:e2e": "jest --projects=apps/api --roots=e2e --forceExit", - "api:e2e:watch": "jest --projects=apps/api --roots=e2e --watch" + "api:test:ci": "jest --projects=apps/api --run-in-band", + "api:e2e": "jest --projects=apps/api-e2e --roots=src --forceExit", + "api:e2e:watch": "jest --projects=apps/api-e2e --roots=src --watch" }, "config": { "commitizen": { @@ -143,7 +143,7 @@ "@ngxs/form-plugin": "^3.2.0", "@ngxs/router-plugin": "^3.2.0", "@ngxs/store": "^3.2.0", - "@nrwl/nx": "^6.4.0-beta.3", + "@nrwl/nx": "^6.4.0", "@trademe/ng-defer-load": "^2.0.0", "@xmlking/jwks-rsa": "^1.4.2", "@xmlking/ngx-knob": "0.0.6", @@ -166,7 +166,6 @@ "filepond-plugin-image-preview": "^3.0.0", "hammerjs": "^2.0.8", "helmet": "^3.13.0", - "mongodb": "^3.1.6", "nest-router": "^1.0.7", "ngx-filepond": "^3.0.0", "ngx-moment": "^3.1.0", @@ -175,6 +174,7 @@ "nodemailer": "^4.6.8", "passport": "^0.4.0", "passport-jwt": "^4.0.0", + "pg": "^7.5.0", "pug": "^2.0.3", "rxjs": "^6.3.3", "screenfull": "^3.3.3", @@ -197,8 +197,8 @@ "@compodoc/compodoc": "^1.1.5", "@nestjs/testing": "^5.3.11", "@ngx-formly/schematics": "5.0.0-beta.5", - "@nrwl/builders": "^6.4.0-beta.3", - "@nrwl/schematics": "^6.4.0-beta.3", + "@nrwl/builders": "^6.4.0", + "@nrwl/schematics": "^6.4.0", "@semantic-release/changelog": "^3.0.0", "@semantic-release/git": "^7.0.4", "@semantic-release/github": "^5.0.6", @@ -228,13 +228,13 @@ "nodemon": "^1.18.4", "prettier": "^1.14.3", "rimraf": "^2.6.2", - "rxjs-tslint-rules": "^4.9.0", + "rxjs-tslint-rules": "^4.10.0", "semantic-release": "^15.9.17", "supertest": "^3.3.0", "testcafe": "^0.22.0", "testcafe-angular-selectors": "^0.3.0", "testcafe-live": "^0.1.3", - "ts-jest": "^23.10.3", + "ts-jest": "^23.10.4", "ts-loader": "^5.2.1", "ts-node": "^7.0.1", "tsconfig-paths": "^3.6.0", diff --git a/production.env b/production.env index 4c8e26e34..c516a37eb 100644 --- a/production.env +++ b/production.env @@ -5,15 +5,15 @@ GLOBAL_PREFIX=/api NODE_TLS_REJECT_UNAUTHORIZED=0 # DB Connection -TYPEORM_CONNECTION=mongodb -TYPEORM_HOST=mongodb -TYPEORM_PORT=27017 +TYPEORM_CONNECTION=postgres +TYPEORM_HOST=postgres +TYPEORM_PORT=5432 TYPEORM_DATABASE=cockpit -TYPEORM_USERNAME=mdbuser +TYPEORM_USERNAME=cockpit TYPEORM_PASSWORD=cockpit123 # ORM Config -TYPEORM_SYNCHRONIZE=true +TYPEORM_SYNCHRONIZE=false TYPEORM_LOGGING=false TYPEORM_ENTITIES=./dist/**/**.entity.js diff --git a/test.env b/test.env index 05e00879e..80cd4abb5 100644 --- a/test.env +++ b/test.env @@ -9,11 +9,11 @@ ALLOW_WHITE_LIST=::ffff:127.0.0.1,::1 LOG_LEVEL=debug # DB Connection -TYPEORM_CONNECTION=mongodb +TYPEORM_CONNECTION=postgres TYPEORM_HOST=localhost -TYPEORM_PORT=27017 +TYPEORM_PORT=5432 TYPEORM_DATABASE=cockpit -TYPEORM_USERNAME=mdbuser +TYPEORM_USERNAME=cockpit TYPEORM_PASSWORD=cockpit123 # ORM Config