diff --git a/.docker-profile b/.docker-profile deleted file mode 100644 index f1cb9344..00000000 --- a/.docker-profile +++ /dev/null @@ -1,3 +0,0 @@ -echo "Welcome to the Help for Early Years Providers Application" - -export PATH=$PATH:/usr/local/bin:/user/local/bundle/bin diff --git a/.dockerignore b/.dockerignore index 6dfdfe5d..783b4cc3 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,22 +1,20 @@ -.DS_Store -.bin -.git -.gitignore -.bundleignore .bundle .byebug_history -.rspec -tmp +.env +.git +.github +.gitignore +.yardoc +adr +config/*.key +config/credentials/*.key +coverage +doc log -test -spec -config/deploy +node_modules +public/assets public/packs public/packs-test -node_modules -yarn-error.log -coverage/ -/terraform/* - -.env -*.log \ No newline at end of file +terraform-azure +tmp +vendor diff --git a/.env.development.example b/.env.development.example deleted file mode 100644 index 4fc0f429..00000000 --- a/.env.development.example +++ /dev/null @@ -1,6 +0,0 @@ -DATABASE_NAME=govuk_rails_boilerplate_development -DATABASE_USER= -DATABASE_PASSWORD= -DATABASE_HOST=localhost -NODE_ENV=development -POSTGRES_PASSWORD= diff --git a/.env.example b/.env.example index d2e9d6eb..572f7d16 100644 --- a/.env.example +++ b/.env.example @@ -1,11 +1,29 @@ -DATABASE_NAME= -DATABASE_USER=boilerplate_user -DATABASE_PASSWORD= -DATABASE_HOST=database -NODE_ENV=development +DATABASE_URL=postgres://postgres:password@localhost:5432/early_years_foundation_reform_production +POSTGRES_USER= POSTGRES_PASSWORD= -RAILS_ENV=development -WEBPACKER_DEV_SERVER_HOST=0.0.0.0 -FEEDBACK_URL= -SIGNUP_URL= -TRACKING_ID= +# psql client +# PGUSER=postgres +# PGPASSWORD=password +# PGHOST=localhost +# PGDATABASE=early_years_foundation_reform_production + +CONTENTFUL_SPACE= +CONTENTFUL_MANAGEMENT_TOKEN= +CONTENTFUL_DELIVERY_TOKEN= +CONTENTFUL_PREVIEW_TOKEN= +CONTENTFUL_ENVIRONMENT= +CONTENTFUL_PREVIEW= + +SENTRY_TOKEN= + +DOMAIN=localhost:3000 + +DEBUG=true + +NODE_ENV=production +RAILS_ENV=production + +ENVIRONMENT=production + +RAILS_MASTER_KEY=xxxxxxxxxxxxxxxx +RAILS_LOG_TO_STDOUT=true diff --git a/.github/workflows/azure-deploy-review.yml b/.github/workflows/azure-deploy-review.yml index 24b55ee9..c0f47a94 100644 --- a/.github/workflows/azure-deploy-review.yml +++ b/.github/workflows/azure-deploy-review.yml @@ -60,19 +60,6 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} # Build and push image - # - name: Build and push dependencies - # uses: docker/build-push-action@v5 - # with: - # target: deps - # context: . - # push: true - # build-args: | - # BUILDKIT_INLINE_CACHE=1 - # SHA=${{ github.event.pull_request.head.sha }} - # cache-from: | - # ${{ env.DOCKER_IMAGE }}:deps - # tags: ${{ env.DOCKER_IMAGE }}:deps - - name: Build and push Docker image uses: docker/build-push-action@v5 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2b396e71..c854448a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} services: postgres: - image: postgres:15.4-alpine + image: postgres:13.1-alpine env: POSTGRES_USER: postgres POSTGRES_PASSWORD: password diff --git a/.gitignore b/.gitignore index f6670a26..7d6666ee 100644 --- a/.gitignore +++ b/.gitignore @@ -33,14 +33,9 @@ yarn-debug.log* .yarn-integrity .yarn/install-state.gz* -.env -.env.docker -.env.localhost -.env.development +.env* *.log -/.idea -.DS_Store -/coverage +coverage # Terraform *.tfstate @@ -59,3 +54,5 @@ tokens /app/assets/builds/* !/app/assets/builds/.keep + +nscacert.pem diff --git a/.yarnrc.yml b/.yarnrc.yml index f03163f4..69c8c921 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1,16 @@ +enableTelemetry: 0 + nodeLinker: node-modules +supportedArchitectures: + cpu: + - x64 + - arm64 + libc: + - glibc + - musl + os: + - darwin + - linux + yarnPath: .yarn/releases/yarn-4.0.2.cjs diff --git a/CLAMAV.md b/CLAMAV.md deleted file mode 100644 index ac1496bc..00000000 --- a/CLAMAV.md +++ /dev/null @@ -1,42 +0,0 @@ -Instructions for setting up clamav-rest server: - -1) Log into cloud front from the command line: - -`cf login -u EMAIL` - -2) Select space to add server -``` -Select a space: -1. eyfs-dev -2. eyfs-pre-prod -3. eyfs-prod -4. eyfs-test -``` -3) Create the `clamav-rest` server with the following command: - -`cf push` - -The docker image, app name and route are in the `manifest.yml` file. - -4) Create the network policy for each cms application (dev, test, preprod and prod). - -``` -cf add-network-policy PUBLIC_APPNAME PRIVATE_APPNAME -s eyfs-prod --protocol tcp --port 9000 -``` - -i.e. for eyfs-cms-dev app in eyfs-dev space -``` -cf add-network-policy eyfs-cms-dev eyfs-clamav-rest-private -s eyfs-prod --protocol tcp --port 9000 -``` - -5) The default for all applications is set to: - -``` -http://eyfs-clamav-rest-private.apps.internal:9000/scan -``` - -So currently no need to set the url for the application. If this is needed (i.e. you want to test a different clamav-rest server) then you can set the RESTY_SERVICE_URL env var. So, for example, if a new private appname is created called `new-eyfs-clamav-rest-private` then the CMS app would need the following set: - -``` -cf set-env eyfs-cms-dev RESTY_SERVICE_URL http://new-eyfs-clamav-rest-private.apps.internal:9000/scan -``` \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 5e3731bc..585ed5f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,15 @@ -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ # Base - AMD64 & ARM64 compatible -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ FROM ruby:3.2.2-alpine AS base RUN apk add --no-cache --no-progress --no-check-certificate build-base less curl tzdata gcompat ENV TZ Europe/London -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ # Dependencies -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ FROM base as deps LABEL org.opencontainers.image.description "Application Dependencies" @@ -33,22 +33,20 @@ RUN bundle config set no-cache true RUN bundle config set without development test RUN bundle install --no-binstubs --retry=10 --jobs=4 -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ # Production Stage -# ------------------------------------------------------------ +# ------------------------------------------------------------------------------ FROM base AS app LABEL org.opencontainers.image.source=https://github.com/DFE-Digital/early-years-foundation-reform LABEL org.opencontainers.image.description "Help for Early Years Providers Rails Application" RUN echo "Welcome to the EYFS HfEYP Application" > /etc/motd -RUN apk add --no-cache --no-progress --no-check-certificate postgresql-dev yarn openssh +RUN apk add --no-cache --no-progress --no-check-certificate postgresql-dev yarn openssh chromium RUN echo "root:Docker!" | chpasswd && cd /etc/ssh/ && ssh-keygen -A ENV APP_HOME /srv ENV RAILS_ENV ${RAILS_ENV:-production} -ENV GOVUK_APP_DOMAIN www.gov.uk -ENV GOVUK_WEBSITE_ROOT https://www.gov.uk ENV AUTHORIZED_HOSTS 127.0.0.1 ENV IGNORE_SECRETS_FOR_BUILD=1 diff --git a/Gemfile b/Gemfile index 91a66933..aa0b9214 100644 --- a/Gemfile +++ b/Gemfile @@ -39,6 +39,7 @@ group :development, :test do gem 'dotenv-rails' gem 'factory_bot_rails' gem 'faker' + gem 'foreman' gem 'pry-byebug' gem 'rspec' gem 'rspec-expectations' diff --git a/Gemfile.lock b/Gemfile.lock index 291ff15d..eb300ff3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -225,6 +225,7 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake + foreman (0.88.1) globalid (1.2.1) activesupport (>= 6.1) govuk-components (4.1.2) @@ -551,6 +552,7 @@ DEPENDENCIES dry-types factory_bot_rails faker + foreman govuk-components govuk_design_system_formbuilder govuk_markdown diff --git a/Procfile.dev b/Procfile.dev index 6cef14d3..3962bcfd 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,3 +1,3 @@ -web: env RUBY_DEBUG_OPEN=true bin/rails server +web: bin/rails server -b 0.0.0.0 -p 3000 css: yarn build:css --watch js: yarn build --watch diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 14abd4b9..de9f3e42 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -2,7 +2,7 @@ doctype html html.govuk-template lang='en' head title= [t('service.name'), yield(:page_title).presence].compact.join(' : ') - = csrf_meta_tags + = csrf_meta_tags = csp_meta_tag = tag.meta content: 'text/html; charset=UTF-8', 'http-equiv': 'Content-Type' diff --git a/bin/dev b/bin/dev index a4e05fa1..3c6e0787 100755 --- a/bin/dev +++ b/bin/dev @@ -1,11 +1,3 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash -if ! gem list foreman -i --silent; then - echo "Installing foreman..." - gem install foreman -fi - -# Default to port 3000 if not specified -export PORT="${PORT:-3000}" - -exec foreman start -f Procfile.dev "$@" +bundle exec foreman start -f Procfile.dev diff --git a/bin/docker-build b/bin/docker-build new file mode 100755 index 00000000..2615da13 --- /dev/null +++ b/bin/docker-build @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# +# Builds and tags all project images +# Force a rebuild using `./bin/docker-build --no-cache` +# ------------------------------------------------------------------------------ +set -e + +for env in dev test; do + docker-compose \ + -f docker-compose.yml \ + -f docker-compose.$env.yml \ + --project-name reform \ + build "$@" +done diff --git a/bin/docker-dev b/bin/docker-dev new file mode 100755 index 00000000..fa012b09 --- /dev/null +++ b/bin/docker-dev @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +# ------------------------------------------------------------------------------ +set -e + +docker-compose \ + -f docker-compose.yml \ + -f docker-compose.dev.yml \ + --project-name reform \ + up --detach app + +docker attach reform_dev diff --git a/bin/docker-down b/bin/docker-down new file mode 100755 index 00000000..eb509ff8 --- /dev/null +++ b/bin/docker-down @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# +# Take down all project services. +# ------------------------------------------------------------------------------ +set -e + +for env in dev test; do + docker-compose \ + -f docker-compose.yml \ + -f docker-compose.$env.yml \ + --project-name reform \ + down --remove-orphans +done diff --git a/bin/docker-rails b/bin/docker-rails new file mode 100755 index 00000000..8a5710e4 --- /dev/null +++ b/bin/docker-rails @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# +# ------------------------------------------------------------------------------ +set -e + +if docker container ls | grep reform_dev; then + echo "Already running development container" + docker exec -it reform_dev rails "$@" +else + echo "Starting development container" + docker-compose \ + -f docker-compose.yml \ + -f docker-compose.dev.yml \ + --project-name reform \ + run \ + --name reform_rails \ + --rm app \ + rails "$@" +fi diff --git a/bin/docker-rspec b/bin/docker-rspec new file mode 100755 index 00000000..db339a17 --- /dev/null +++ b/bin/docker-rspec @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# ------------------------------------------------------------------------------ +# If the working directory is not mounted as a volume, then the test environment +# RAILS_MASTER_KEY variable must be passed in. +# +# This behaviour is used in a GitHub workflow, however this script adds the mount +# +set -e + +docker-compose \ + -f docker-compose.yml \ + -f docker-compose.test.yml \ + --project-name reform \ + run \ + --volume="$PWD:/srv" \ + --name reform_rspec \ + --rm app \ + rspec "$@" diff --git a/config/database.yml b/config/database.yml index fed063f3..a5c72f06 100644 --- a/config/database.yml +++ b/config/database.yml @@ -17,20 +17,13 @@ default: &default adapter: postgresql encoding: unicode - database: <%= ENV['DATABASE_NAME'] %> - username: <%= ENV['DATABASE_USER'] %> - password: <%= ENV['DATABASE_PASSWORD'] %> - port: <%= ENV['DATABASE_PORT'] || '5432' %> - host: <%= ENV['DATABASE_HOST'] %> - pool: 5 + # For details on connection pooling, see Rails configuration guide + # https://guides.rubyonrails.org/configuring.html#database-pooling + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + url: <%= ENV["DATABASE_URL"] %> development: <<: *default - database: govuk_rails_boilerplate_development - -deployed_development: - <<: *default - database: <%= ENV['DATABASE_NAME'] %> # The specified database role being used to connect to postgres. # To create additional roles in postgres see `$ createuser --help`. @@ -64,7 +57,6 @@ deployed_development: # Do not set this db to the same as development or production. test: &test <<: *default - database: govuk_rails_boilerplate_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is @@ -88,5 +80,5 @@ test: &test production: <<: *default -cucumber: - <<: *test +# cucumber: +# <<: *test diff --git a/content.yml b/content.yml new file mode 100644 index 00000000..a7813f5c --- /dev/null +++ b/content.yml @@ -0,0 +1,63 @@ +--- + +- support-for-practitioners + - reducing-paperwork + - working-in-partnership-with-parents-and-carers + - curriculum-planning + - early-years-practitioner-wellbeing-support + - training-qualifications-support-guidance + - integrated-reviews + - changes-to-the-early-years-foundation-stage-eyfs + - meeting-the-needs-of-all-children + - english-as-an-additional-language-eal + - sensory-food-education + +- areas-of-learning + - communication-and-language + - interactions + - exploring-language + - listening-and-understanding + - physical-development + - core-strength-and-co-ordination + - gross-motor-skills + - fine-motor-skills + - personal-social-and-emotional-development + - emotions + - sense-of-self + - relationships + - literacy + - reading-comprehension + - exploring-words + - writing + - mathematics + - numbers + - patterns-and-connections + - spatial-reasoning + - understanding-the-world + - personal-experiences + - diverse-world + - widening-vocabulary + - expressive-arts-and-design + - imagination-and-creativity + - self-expression + - communicating-through-arts + +- health-and-wellbeing + - oral-health + - food-safety + - internet-safety + - mental-health-for-early-years-children + - nutrition + - introducing-solid-foods + - a-healthy-plate + - allergies + - menu-planning + - cost-effective-healthy-food + - planning-food-activities-with-children + +- footer + - accessibility + - cookies + - contact_us + - disclaimer + - wifi-and-data diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 00000000..3a982b62 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,41 @@ +--- +services: + app: + container_name: reform_dev + build: + target: dev + image: reform:dev + command: foreman start -f Procfile.dev + healthcheck: + test: curl --fail http://localhost:3000/health || exit 1 + restart: on-failure + environment: + - ENVIRONMENT= + # - RUBY_DEBUG_OPEN=true + # psql client + - PGUSER=postgres + - PGPASSWORD=password + - PGHOST=db + - PGDATABASE=early_years_foundation_reform_development + # app config + - DATABASE_URL=postgres://postgres:password@db:5432/early_years_foundation_reform_development + - RAILS_ENV=development + - DOMAIN=localhost:3000 + - RAILS_SERVE_STATIC_FILES=true + volumes: + - .:/srv + tty: true + stdin_open: true + + doc: + container_name: reform_doc + image: reform:dev + command: yard server + healthcheck: + test: curl --fail http://localhost:8808 || exit 1 + volumes: + - .:/srv + ports: + - 8808:8808 + networks: + - reform diff --git a/docker-compose.test.yml b/docker-compose.test.yml new file mode 100644 index 00000000..fa04a440 --- /dev/null +++ b/docker-compose.test.yml @@ -0,0 +1,15 @@ +--- +services: + app: + container_name: reform_test + build: + target: test + image: reform:test + environment: + - DATABASE_URL=postgres://postgres:password@db:5432/early_years_foundation_reform_test + - RAILS_ENV=test + - DOMAIN=reform.app + - DEBUG=false + - CONTENTFUL_MANAGEMENT_TOKEN= + tty: true + stdin_open: true diff --git a/docker-compose.yml b/docker-compose.yml index 6adc8b87..ff60ad29 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,40 +1,45 @@ -version: "3" - -volumes: - db_data: - clamd_data: - +# ------------------------------------------------------------------------------ +# +# +--- +version: '3.8' services: app: + container_name: reform_prod build: context: . - dockerfile: Dockerfile.dev - image: eyfs-reform-spike-web:latest - command: ./entrypoints/docker-entrypoint.sh + target: app + image: reform:prod depends_on: - - database + - db ports: - - "3000:3000" - volumes: - - .:/app - env_file: .env + - 3000:3000 + environment: + - EDITOR=vi + - RAILS_ENV=production + - NODE_ENV=production + - WEB_CONCURRENCY=0 + - PROXY_CERT + networks: + - reform - database: - image: postgres:13.1 + db: + container_name: reform_db + image: postgres:13.1-alpine + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=password + healthcheck: + test: pg_isready volumes: - - db_data:/var/lib/postgresql/data - - ./init.sql:/docker-entrypoint-initdb.d/init.sql + - db:/var/lib/postgresql/data ports: - - "5432:5432" - env_file: .env + - 5432:5432 + networks: + - reform - webpack: - image: eyfs-reform-spike-web:latest - command: sh -c "npm rebuild node-sass && ./bin/webpack-dev-server" - depends_on: - - app - volumes: - - .:/app - ports: - - '3035:3035' - env_file: .env +volumes: + db: + +networks: + reform: diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 7d7b1cb1..64e75dcd 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -2,16 +2,16 @@ # ------------------------------------------------------------------------------ set -e -if [ ${RAILS_ENV} != "production" ] +if [ -z ${PROXY_CERT} ] then + echo "No proxy certificate to append" +else + echo "Appending proxy certificate" + cat $PROXY_CERT >> /etc/ssl/certs/ca-certificates.crt +fi - if [ -z ${PROXY_CERT} ] - then - echo "No proxy certificate to append" - else - echo "Appending proxy certificate" - cat $PROXY_CERT >> /etc/ssl/certs/ca-certificates.crt - fi +if [ ${RAILS_ENV} != "production" ] +then # # Development & Test @@ -53,7 +53,7 @@ else /usr/sbin/sshd eval $(printenv | xargs 2>/dev/null | export > /root/.profile) - bundle exec rails db:prepare + bundle exec rails db:create db:migrate case ${ENVIRONMENT} in "development" ) diff --git a/init.sql b/init.sql deleted file mode 100755 index 85c15ef0..00000000 --- a/init.sql +++ /dev/null @@ -1,2 +0,0 @@ -CREATE USER boilerplate_user; -ALTER USER boilerplate_user WITH SUPERUSER; \ No newline at end of file diff --git a/manifest.yml b/manifest.yml deleted file mode 100644 index 112bcccb..00000000 --- a/manifest.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -applications: - - name: eyfs-clamav-rest-private - instances: 3 - docker: - image: niilo/clamav-rest - routes: - - route: eyfs-clamav-rest-private.apps.internal diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 439919cf..b890237e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -25,6 +25,12 @@ Capybara.javascript_driver = :chrome_headless Capybara.default_driver = :chrome_headless +RSpec.configure do |config| + config.before :each, type: :system do + driven_by :rack_test + end +end + # This file was generated by the `rails generate rspec:install` command. Conventionally, all # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. # The generated `.rspec` file contains `--require spec_helper` which will cause diff --git a/spec/system/smoke_spec.rb b/spec/system/smoke_spec.rb new file mode 100644 index 00000000..55b74779 --- /dev/null +++ b/spec/system/smoke_spec.rb @@ -0,0 +1,11 @@ +require 'rails_helper' + +RSpec.describe 'PoC' do + before do + visit '/' + end + + specify do + expect(page).to have_content 'Find helpful articles and resources to support you in your setting.' + end +end diff --git a/sshd_config b/sshd_config index 27e95ecc..e5d90f4f 100644 --- a/sshd_config +++ b/sshd_config @@ -1,12 +1,12 @@ -Port 2222 -ListenAddress 0.0.0.0 -LoginGraceTime 180 -X11Forwarding yes -Ciphers aes128-cbc,3des-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr -MACs hmac-sha1,hmac-sha1-96 -StrictModes yes -SyslogFacility DAEMON -PasswordAuthentication yes -PermitEmptyPasswords no -PermitRootLogin yes -Subsystem sftp internal-sftp +Port 2222 +ListenAddress 0.0.0.0 +LoginGraceTime 180 +X11Forwarding yes +Ciphers aes128-cbc,3des-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr +MACs hmac-sha1,hmac-sha1-96 +StrictModes yes +SyslogFacility DAEMON +PasswordAuthentication yes +PermitEmptyPasswords no +PermitRootLogin yes +Subsystem sftp internal-sftp diff --git a/terraform-azure/local.tf b/terraform-azure/local.tf index eedb4311..9067a561 100644 --- a/terraform-azure/local.tf +++ b/terraform-azure/local.tf @@ -15,8 +15,6 @@ locals { "ENVIRONMENT" = var.environment "DATABASE_URL" = var.webapp_database_url "WEBSITES_ENABLE_APP_SERVICE_STORAGE" = "false" - "GOVUK_APP_DOMAIN" = "london.cloudapps.digital" #TODO: Remove this dependency post-migration to Azure - "GOVUK_WEBSITE_ROOT" = "eyfs-dev" #TODO: Remove this dependency post-migration to Azure "DOMAIN" = var.webapp_config_domain "FEEDBACK_URL" = var.webapp_config_feedback_url "NODE_ENV" = var.webapp_config_node_env @@ -34,8 +32,6 @@ locals { "ENVIRONMENT" = var.environment "DATABASE_URL" = var.webapp_slot_database_url "WEBSITES_ENABLE_APP_SERVICE_STORAGE" = "false" - "GOVUK_APP_DOMAIN" = "london.cloudapps.digital" #TODO: Remove this dependency post-migration to Azure - "GOVUK_WEBSITE_ROOT" = "ey-recovery-dev" #TODO: Remove this dependency post-migration to Azure "DOMAIN" = var.webapp_config_domain "FEEDBACK_URL" = var.webapp_config_feedback_url "NODE_ENV" = var.webapp_config_node_env