services:
  ingest:
    platform: linux/arm64
    build:
      context: .
      args:
        DOCKER_BUILDKIT: 1
        # GITHUB_TOKEN: ${GITHUB_TOKEN}
      dockerfile: ./Dockerfile
      secrets:
        - tokens
    volumes:
      - ./build:/var/task/
      - ./node_modules:/var/task/node_modules
      - ~/.aws/credentials:/home/lambdauser/.aws/credentials
      - ${HOME}/.ssh/snowflake:/home/appuser/snowflake_private_key
    logging:
      options:
        max-size: '1m'
        max-file: '1'
    ports:
      - '9000:8080'
    environment:
      - NODE_ENV=dev
      - ENV=qa
      - LOG_LEVEL=debug
      - LOGGER_LEVEL=debug
      - DD_LAMBDA_HANDLER=src/app.handler
      - DD_ENV=dev
      - DD_TRACE_ENABLED=true
      - DD_ENHANCED_METRICS=true
      - SNOWFLAKE_ACCOUNT=${SNOWFLAKE_ACCOUNT}
      - SNOWFLAKE_USER=${SNOWFLAKE_USER}
      - SNOWFLAKE_PRIVATE_KEY_PATH=${SNOWFLAKE_PRIVATE_KEY_PATH}
      - SNOWFLAKE_PRIVATE_KEY_PASSPHRASE=${SNOWFLAKE_PRIVATE_KEY_PASSPHRASE}
      - SNOWFLAKE_DATABASE=${SNOWFLAKE_DATABASE}
      - SNOWFLAKE_WAREHOUSE=${SNOWFLAKE_WAREHOUSE}
      - SNOWFLAKE_SCHEMA=${SNOWFLAKE_SCHEMA}
      - SNOWFLAKE_ROLE=${SNOWFLAKE_ROLE}
      - AWS_LAMBDA_FUNCTION_NAME=${AWS_LAMBDA_FUNCTION_NAME}
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
      - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
      - isLocal=false
      - ELASTICSEARCH_USERNAME=${ELASTICSEARCH_USERNAME}
      - ELASTICSEARCH_PASSWORD=${ELASTICSEARCH_PASSWORD}
      - ELASTICSEARCH_URL=${ELASTICSEARCH_URL}
  lint-and-test:
    platform: linux/amd64
    build:
      context: .
      args:
        DOCKER_BUILDKIT: 1
      dockerfile: ./Dockerfile.tests
      secrets:
        - tokens
    environment:
      - NODE_ENV=test
      - ENV=test
secrets:
  tokens:
    environment: 'GITHUB_TOKEN'
# local only
# secrets:
#   tokens:
#     file: ./.env
