Sen descrición

Blake Schneider 44808d66fd PROD-1221: Wording improvements %!s(int64=5) %!d(string=hai) anos
__tests__ 44808d66fd PROD-1221: Wording improvements %!s(int64=5) %!d(string=hai) anos
client 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
config 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
db 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
modules 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
processes 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
server 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
xml 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
.dockerignore 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
.eslintrc.json 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
.gitignore 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
.prettierrc 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
Dockerfile 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
Dockerfile.test 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
README.md 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
docker-compose.yml 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
docker.npmrc 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
docker_build.sh 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
docker_run_psql.sh 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
docker_run_tests.sh 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
index.js 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
logger.js 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
nginx.conf 12b2d49e5a PROD-1221: Initial commit of EiRegister endpoint %!s(int64=5) %!d(string=hai) anos
package-lock.json 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos
package.json 39daae2d76 PROD-1221: oadrPoll/oadrCreatedEvent %!s(int64=5) %!d(string=hai) anos

README.md

Overview

A NodeJS web application providing OpenADR 2.0b services.

Configuration

Files

RSA private key for Kinesis must be installed at pem/private-key.pem.

Environment

Please set the following environment variables:

  • COMPANY: Which company we're associated to
  • NODE_ENV: Which environment we're running in. Can be production | development | test.
  • DB_URL: The database URL used to store buffered sensor readings
  • ENCRYPT_PASS: The password used to encrypt the RSA private key, as well as LOGGER_PEM
  • PORT: The TCP port the webserver should bind to
  • REGION: AWS region to use for Kinesis
  • INSTANCE_ID: Instance ID to be used by Kinesis-Logger
  • LOGGER_PEM: RSA private key contents to be used by Kinesis-Logger
  • NO_AWS: Set this true when NODE_ENV is development to be able to run outside an AWS environment

Running locally for development

Environment

At a minimum you will want to set NODE_ENV to development, NO_AWS to true, and configure a DB_URL to point to a Postgres database.

Build

Ensure you have a .npmrc file with an authToken for the @hw and @be private repos. If you get an error E401 it's likely that this is mis-configured.

Run

npm install

to install dependencies.

Running tests

npm run test

Running server

npm run start

Running in Docker for development

Configuration

The following files should be present in the project directory and are referred to by docker-compose.yml

  • ssl.crt: VTN certificate file in PEM format. This will be the concatenated result of 3 certificates: 1) VTN cert TEST_RSA_VTN_2003XXXXXXXXX_cert.pem, 2) Root Cert Authority TEST_OpenADR_RSA_RCA0002_Cert.pem, 3) Service Provider TEST_OpenADR_RSA_SPCA0002_Cert.pem. Certificates must be present in that order.
  • ssl.key: VTN key file in PEM format. This will come from a file that looks like TEST_RSA_VTN_2003XXXXXXXXX_privkey.pem in the VTN cert bundle.
  • clientssl.crt: VEN CA certificate file in PEM format. This will be the concatenated result of 2 certificates from the VEN cert bundle (e.g. TEST_RSA_VEN_2003XXXXXXXXX_certs.zip): 1) Intermediate "MCA" cert TEST_OpenADR_RSA_MCA0002_Cert.pem, 2) Root "RCA" cert TEST_OpenADR_RSA_RCA0002_Cert.pem. Certificates must be present in that order. nginx uses this to validate client certificates.

Build

You will need an authToken for the @hw repo. You should be able to retrieve this by running npm login https://[insert repo url here] and looking in ~/.npmrc or ./.npmrc.

Pass the auth token to ./docker_build.sh like

env NPM_TOKEN=YOURTOKENHERE ./docker_build.sh

Running tests

First follow the Build steps above, then run

./docker_run_tests.sh

Running server

First follow the Build steps above, then run

docker-compose up -d

You can tweak the environment variables in docker-compose.yml.

Administering database

You can run

./docker_run_psql.sh

To get a psql session for the Docker Postgres database.

Running locally with a Docker database

If you don't want to spin up a separate Postgres database, you can follow the steps in Running in Docker for development, un-comment the 2 port lines under db in docker-compose.yml, then use a DB_URL of postgres://vtn:vtn@127.0.0.1:55432/vtn_test in your local NodeJS environment. This will let you change code quickly without rebuilding a Docker image.