├── task
├── application
├── app
│ ├── __init__.py
│ └── main.py
├── entities
│ ├── __init__.py
│ └── thumbnail.py
├── tests
│ ├── __init__.py
│ ├── backend
│ │ ├── __init__.py
│ │ └── test_endpoints.py
│ └── worker
│ │ ├── __init__.py
│ │ ├── test_workers.py
│ │ ├── test_entities.py
│ │ └── test_celery_config.py
├── workers
│ ├── __init__.py
│ ├── thumbnail.py
│ └── config.py
├── benchmark_input.json
├── worker.entrypoint.sh
├── workers.requirements.txt
├── backend.entrypoint.sh
├── README.md
├── integration_worker.py
├── run-snyk-test.sh
├── backend.requirements.txt
├── templates
│ └── thumbnail.html
├── docker-compose.yml
├── snyk-docker-image-scan.sh
├── post-event-driven-benchmark
├── pre-event-driven-benchmark
├── backend.Dockerfile
└── worker.Dockerfile
├── .tool-versions
├── infrastructure
├── providers.tf
├── tfvars
│ ├── main.tfvars
│ └── poc.tfvars
├── outputs.tf
├── backend.tf
├── locals.tf
├── data.tf
├── variables.tf
├── .terraform.lock.hcl
└── main.tf
├── .gitignore
├── _scripts
└── terraform-snyk-scan.sh
├── ebsource
└── .platform
│ └── hooks
│ └── prebuild
│ └── custom.sh
├── .github
└── workflows
│ ├── infrastructure.yml
│ └── application.yml
└── .dccache
/task:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/app/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/entities/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/tests/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/workers/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/tests/backend/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/application/tests/worker/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.tool-versions:
--------------------------------------------------------------------------------
1 | python 3.9.6
2 | awscli 2.2.10
3 | terraform 1.0.0
4 |
--------------------------------------------------------------------------------
/infrastructure/providers.tf:
--------------------------------------------------------------------------------
1 | provider "aws" {
2 | region = var.region
3 | }
4 |
--------------------------------------------------------------------------------
/application/benchmark_input.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "http://lorempixel.com/400/200/"
3 | }
--------------------------------------------------------------------------------
/application/worker.entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | celery -A workers.thumbnail worker --loglevel=info
--------------------------------------------------------------------------------
/application/workers.requirements.txt:
--------------------------------------------------------------------------------
1 | pytest
2 | requests
3 | Pillow
4 | celery==v5.1.2
5 | boto3
6 | moto
7 | pycurl
8 | python-dotenv
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | **/venv/**
2 | **/.pytest_cache/**
3 | **/__pycache__/**
4 | .env
5 | **/.terraform/**
6 | *.tfplan
7 | Dockerrun.aws.*
8 | *.sarif
--------------------------------------------------------------------------------
/infrastructure/tfvars/main.tfvars:
--------------------------------------------------------------------------------
1 | region = "ap-southeast-2"
2 | hosted_zone_name = "pablosspot.ml"
3 | endpoint_name = "app"
4 |
--------------------------------------------------------------------------------
/application/backend.entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | uvicorn app.main:app --reload \
3 | --workers 1 \
4 | --host 0.0.0.0 \
5 | --port $APPLICATION_PORT
--------------------------------------------------------------------------------
/application/README.md:
--------------------------------------------------------------------------------
1 | Episode 16
2 | Event Driven Architecture - Integrating FastAPI with Celery
3 | Youtube video: https://www.youtube.com/watch?v=bIX2aLO0vFI&t=30s
--------------------------------------------------------------------------------
/application/integration_worker.py:
--------------------------------------------------------------------------------
1 | from workers import thumbnail
2 |
3 | filename='somefilenamefromtest'
4 | thumbnail.create.delay('http://lorempixel.com/400/200/', filename)
--------------------------------------------------------------------------------
/infrastructure/outputs.tf:
--------------------------------------------------------------------------------
1 | output "endpoint_url" {
2 | description = "Application endpoint"
3 | value = "https://${var.endpoint_name}.${var.hosted_zone_name}/docs"
4 | }
5 |
--------------------------------------------------------------------------------
/application/run-snyk-test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | snyk test --sarif-file-output=/snyk/output/snyk.sarif
4 |
5 | if [ $? -ne 0 ]
6 | then
7 | echo "Sny scan found vulnerabilities"
8 | fi
--------------------------------------------------------------------------------
/application/backend.requirements.txt:
--------------------------------------------------------------------------------
1 | fastapi
2 | uvicorn
3 | pytest
4 | requests
5 | wonderwords
6 | aiofiles
7 | Pillow
8 | celery==v5.1.2
9 | jinja2
10 | boto3
11 | moto
12 | python-dotenv
--------------------------------------------------------------------------------
/infrastructure/backend.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | backend "remote" {
3 | hostname = "app.terraform.io"
4 | organization = "pablosspot"
5 |
6 | workspaces {
7 | prefix = "event-driven-system-infrastructure-"
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/application/templates/thumbnail.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ id }}
4 |
5 |
6 | Thumbnail Name: {{ id }}
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/_scripts/terraform-snyk-scan.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | [ -z "$SNYK_TOKEN" ] && echo "SNYK_TOKEN required" && exit 1
5 | [ -z "$TF_CODE_PATH" ] && echo "TF_CODE_PATH required" && exit 1
6 |
7 |
8 | docker run -e SNYK_TOKEN \
9 | -v $TF_CODE_PATH:/infra \
10 | -w /infra \
11 | snyk/snyk:alpine snyk iac test \
12 | --sarif-file-output=terraform.snyk.sarif
--------------------------------------------------------------------------------
/application/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: "3.8"
2 |
3 | services:
4 | backend:
5 | build:
6 | context: .
7 | dockerfile: backend.Dockerfile
8 | ports:
9 | - 8000:8000
10 | volumes:
11 | - $PWD/.env:/usr/src/.env
12 |
13 | worker:
14 | build:
15 | context: .
16 | dockerfile: worker.Dockerfile
17 | volumes:
18 | - $PWD/.env:/usr/src/.env
19 |
--------------------------------------------------------------------------------
/infrastructure/tfvars/poc.tfvars:
--------------------------------------------------------------------------------
1 | region = "ap-southeast-2"
2 | hosted_zone_name = "pablosspot.ml"
3 | endpoint_name = "app"
4 | vpc_id = "vpc-392e765d"
5 | private_subnets = ["subnet-ba2f3dcc", "subnet-4de6a814"]
6 | public_subnets = ["subnet-588b663f", "subnet-4de6a814"]
7 | instance_security_groups = ["sg-06be7460"]
8 | lb_security_groups = ["sg-728b390b"]
9 |
--------------------------------------------------------------------------------
/infrastructure/locals.tf:
--------------------------------------------------------------------------------
1 | locals {
2 | tags = {
3 | created_by = "terraform"
4 | }
5 |
6 | aws_ecr_url = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${var.region}.amazonaws.com"
7 | docker_run_config_sha = sha256(local_file.docker_run_config.content)
8 | backend_image_tag = try([
9 | for t in data.aws_ecr_image.image["backend"].image_tags : t if t != "latest"
10 | ][0], "latest")
11 | worker_image_tag = try([
12 | for t in data.aws_ecr_image.image["worker"].image_tags : t if t != "latest"
13 | ][0], "latest")
14 | }
15 |
--------------------------------------------------------------------------------
/application/workers/thumbnail.py:
--------------------------------------------------------------------------------
1 | from .config import get_celery_app
2 | from entities.thumbnail import S3_Thumbnail, Thumbnail
3 |
4 | app = get_celery_app()
5 |
6 |
7 | @app.task(bind=True, name='create_thumbnail')
8 | def create(self, url, filename):
9 | thumbnail = Thumbnail(url, filename)
10 | thumbnail.create()
11 |
12 |
13 | @app.task(bind=True, name='create_s3_thumbnail')
14 | def create_s3_thumbnail(self, url, filename, bucket_name):
15 | thumbnail = S3_Thumbnail(url, filename)
16 | thumbnail.s3_bucket = bucket_name
17 | thumbnail.create()
18 |
--------------------------------------------------------------------------------
/application/snyk-docker-image-scan.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | image_name=$1
5 | [ -z $image_name ] && echo "Image name required" && exit 1
6 |
7 | image_tag=$image_name
8 |
9 | [ ! -z "$ECR_REGISTRY" ] && image_tag="$ECR_REGISTRY/$image_tag:$IMAGE_TAG"
10 |
11 | script_path=$(dirname "$0")
12 | cd $script_path
13 |
14 | docker run --rm -it --env SNYK_TOKEN \
15 | -v /var/run/docker.sock:/var/run/docker.sock \
16 | -v $PWD:/src \
17 | snyk/snyk:docker \
18 | snyk test --docker $image_tag --file=/src/$image_name.Dockerfile \
19 | --sarif-file-output=/src/$image_name.scan.sarif
--------------------------------------------------------------------------------
/ebsource/.platform/hooks/prebuild/custom.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | systemctl enable amazon-ssm-agent
5 | systemctl start amazon-ssm-agent
6 |
7 | yum install -y amazon-cloudwatch-agent
8 |
9 | sudo cat < /opt/aws/amazon-cloudwatch-agent/bin/config.json
10 | {
11 | "agent": {
12 | "metrics_collection_interval": 60,
13 | "run_as_user": "root"
14 | },
15 | "metrics": {
16 | "append_dimensions": {
17 | "AutoScalingGroupName": "\${aws:AutoScalingGroupName}"
18 | },
19 | "metrics_collected": {
20 | "mem": {
21 | "measurement": ["mem_used_percent"]
22 | }
23 | }
24 | }
25 | }
26 | EOF
27 |
28 | /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
29 | -a fetch-config -m ec2 -s -c \
30 | file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
--------------------------------------------------------------------------------
/application/tests/worker/test_workers.py:
--------------------------------------------------------------------------------
1 | from unittest import TestCase
2 | from pathlib import Path
3 | from workers import thumbnail
4 |
5 | from moto import mock_s3
6 |
7 | import boto3
8 |
9 |
10 | class TestWorkers(TestCase):
11 |
12 | def test_s3_thumbnail(self):
13 | with mock_s3():
14 | bucket_name = "somebucket"
15 | s3 = boto3.client('s3')
16 | s3.create_bucket(Bucket=bucket_name)
17 |
18 | url = 'http://personal.psu.edu/xqz5228/jpg.jpg'
19 | filename = 'somefilename'
20 | thumbnail.create_s3_thumbnail(url, filename, bucket_name)
21 | response = s3.list_objects_v2(Bucket=bucket_name)
22 | self.assertTrue(
23 | response['Contents'][0]['Key'],
24 | f'thumbnail/{filename}'
25 | )
26 |
--------------------------------------------------------------------------------
/infrastructure/data.tf:
--------------------------------------------------------------------------------
1 | data "aws_caller_identity" "current" {}
2 |
3 | data "aws_elastic_beanstalk_hosted_zone" "current" {}
4 |
5 | data "aws_elastic_beanstalk_hosted_zone" "current" {}
6 |
7 | data "archive_file" "docker_run" {
8 | type = "zip"
9 | source_dir = "${path.module}/ebsource"
10 | output_path = "${path.module}/Dockerrun.aws.zip"
11 |
12 | depends_on = [
13 | local_file.docker_run_config
14 | ]
15 | }
16 |
17 | data "aws_iam_policy_document" "assume_policy" {
18 | statement {
19 | actions = ["sts:AssumeRole"]
20 | principals {
21 | type = "Service"
22 | identifiers = ["ec2.amazonaws.com"]
23 | }
24 | }
25 | }
26 |
27 | data "aws_iam_policy_document" "permissions" {
28 | statement {
29 | actions = [
30 | "cloudwatch:PutMetricData",
31 | "ec2:DescribeInstanceStatus",
32 | "ssm:*",
33 | "ec2messages:*",
34 | "s3:*",
35 | "sqs:*"
36 | ]
37 | resources = ["*"]
38 | }
39 | }
40 |
41 | data "aws_route53_zone" "zone" {
42 | name = var.hosted_zone_name
43 | }
44 |
--------------------------------------------------------------------------------
/application/tests/worker/test_entities.py:
--------------------------------------------------------------------------------
1 | from unittest import TestCase
2 | from pathlib import Path
3 |
4 | from PIL import UnidentifiedImageError
5 | from requests.models import MissingSchema
6 | from entities.thumbnail import Thumbnail, S3_Thumbnail
7 |
8 | from moto import mock_s3
9 |
10 | import pytest
11 | import boto3
12 |
13 |
14 | class TestEntities(TestCase):
15 | def test_s3_entities(self):
16 | with mock_s3():
17 | bucket_name = "somebucket"
18 | s3 = boto3.client('s3')
19 | s3.create_bucket(Bucket=bucket_name)
20 |
21 | url = 'http://personal.psu.edu/xqz5228/jpg.jpg'
22 | filename = 'somefilename'
23 | thumbnail = S3_Thumbnail(url, filename)
24 | thumbnail.s3_bucket = bucket_name
25 | self.assertEqual(thumbnail.url, url)
26 | self.assertEqual(thumbnail.filename, filename)
27 |
28 | thumbnail.create()
29 | response = s3.list_objects_v2(Bucket=bucket_name)
30 | self.assertTrue(
31 | response['Contents'][0]['Key'],
32 | f'thumbnail/{filename}'
33 | )
34 |
35 | def test_thumbnail_exceptions(self):
36 | with pytest.raises(UnidentifiedImageError):
37 | url = 'https://www.google.com'
38 | thumbnail = Thumbnail(url, 'somefile')
39 | thumbnail.create()
40 |
41 | with pytest.raises(MissingSchema):
42 | url = 'someurl'
43 | thumbnail = Thumbnail(url, 'somefile')
44 | thumbnail.create()
45 |
--------------------------------------------------------------------------------
/application/post-event-driven-benchmark:
--------------------------------------------------------------------------------
1 | This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
2 | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
3 | Licensed to The Apache Software Foundation, http://www.apache.org/
4 |
5 | Benchmarking localhost (be patient).....done
6 |
7 |
8 | Server Software: uvicorn
9 | Server Hostname: localhost
10 | Server Port: 8000
11 |
12 | Document Path: /thumbnail
13 | Document Length: 73 bytes
14 |
15 | Concurrency Level: 10
16 | Time taken for tests: 1.622 seconds
17 | Complete requests: 100
18 | Failed requests: 90
19 | (Connect: 0, Receive: 0, Length: 90, Exceptions: 0)
20 | Total transferred: 22168 bytes
21 | Total body sent: 19100
22 | HTML transferred: 7768 bytes
23 | Requests per second: 61.64 [#/sec] (mean)
24 | Time per request: 162.223 [ms] (mean)
25 | Time per request: 16.222 [ms] (mean, across all concurrent requests)
26 | Transfer rate: 13.34 [Kbytes/sec] received
27 | 11.50 kb/s sent
28 | 24.84 kb/s total
29 |
30 | Connection Times (ms)
31 | min mean[+/-sd] median max
32 | Connect: 0 1 1.6 0 6
33 | Processing: 8 157 102.8 133 543
34 | Waiting: 7 147 101.4 119 543
35 | Total: 8 158 102.7 133 544
36 |
37 | Percentage of the requests served within a certain time (ms)
38 | 50% 133
39 | 66% 158
40 | 75% 186
41 | 80% 187
42 | 90% 228
43 | 95% 414
44 | 98% 543
45 | 99% 544
46 | 100% 544 (longest request)
--------------------------------------------------------------------------------
/application/pre-event-driven-benchmark:
--------------------------------------------------------------------------------
1 | This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
2 | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
3 | Licensed to The Apache Software Foundation, http://www.apache.org/
4 |
5 | Benchmarking localhost (be patient).....done
6 |
7 |
8 | Server Software: uvicorn
9 | Server Hostname: localhost
10 | Server Port: 8000
11 |
12 | Document Path: /thumbnail
13 | Document Length: 76 bytes
14 |
15 | Concurrency Level: 10
16 | Time taken for tests: 10.745 seconds
17 | Complete requests: 100
18 | Failed requests: 92
19 | (Connect: 0, Receive: 0, Length: 92, Exceptions: 0)
20 | Total transferred: 22156 bytes
21 | Total body sent: 19100
22 | HTML transferred: 7756 bytes
23 | Requests per second: 9.31 [#/sec] (mean)
24 | Time per request: 1074.463 [ms] (mean)
25 | Time per request: 107.446 [ms] (mean, across all concurrent requests)
26 | Transfer rate: 2.01 [Kbytes/sec] received
27 | 1.74 kb/s sent
28 | 3.75 kb/s total
29 |
30 | Connection Times (ms)
31 | min mean[+/-sd] median max
32 | Connect: 0 0 0.2 0 2
33 | Processing: 646 840 191.6 732 1838
34 | Waiting: 646 840 191.5 728 1837
35 | Total: 646 840 191.5 732 1838
36 |
37 | Percentage of the requests served within a certain time (ms)
38 | 50% 732
39 | 66% 984
40 | 75% 1002
41 | 80% 1019
42 | 90% 1037
43 | 95% 1093
44 | 98% 1150
45 | 99% 1838
46 | 100% 1838 (longest request)
--------------------------------------------------------------------------------
/application/backend.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.9-alpine AS base
2 |
3 | WORKDIR /usr/src
4 |
5 | ENV PYTHONDONTWRITEBYTECODE 1
6 | ENV PYTHONUNBUFFERED 1
7 | ENV CRYPTOGRAPHY_DONT_BUILD_RUST 1
8 | ENV APPLICATION_PORT 8000
9 |
10 | COPY ./backend.requirements.txt /usr/src/requirements.txt
11 |
12 | RUN set -eux \
13 | && apk add --no-cache --virtual .build-deps build-base \
14 | libressl-dev libffi-dev gcc musl-dev python3-dev \
15 | libressl-dev libffi-dev gcc musl-dev python3-dev \
16 | tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \
17 | libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev \
18 | libxcb-dev libpng-dev \
19 | && pip install --upgrade pip setuptools wheel \
20 | && pip install -r /usr/src/requirements.txt \
21 | && rm -rf /root/.cache/pip
22 |
23 | COPY ./app/ /usr/src/app/
24 | COPY ./templates/ /usr/src/templates/
25 | COPY ./workers/ /usr/src/workers/
26 | COPY ./entities/ /usr/src/entities/
27 |
28 | FROM snyk/snyk:python AS scan
29 | ARG SNYK_TOKEN
30 | ENV SNYK_TOKEN=${SNYK_TOKEN}
31 |
32 | COPY backend.requirements.txt requirements.txt
33 | COPY run-snyk-test.sh .
34 |
35 | RUN pip install -r requirements.txt
36 | RUN ./run-snyk-test.sh
37 |
38 | FROM scratch AS scan-result
39 | COPY --from=scan /snyk/output .
40 |
41 | FROM base AS test
42 |
43 | COPY ./tests/backend/ /usr/src/tests/
44 | RUN pytest
45 | RUN touch /usr/src/test.complete
46 |
47 | FROM base AS final
48 | COPY --from=test /usr/src/test.complete .
49 | COPY ./backend.entrypoint.sh /usr/src/entrypoint.sh
50 |
51 | # RUN addgroup -S appgroup && adduser -S appuser -G appgroup
52 | # USER appuser
53 |
54 | ENTRYPOINT [ "sh", "/usr/src/entrypoint.sh" ]
--------------------------------------------------------------------------------
/application/tests/worker/test_celery_config.py:
--------------------------------------------------------------------------------
1 | from unittest import TestCase, mock
2 | from workers.config import get_celery_app
3 | from moto import mock_sqs
4 |
5 | import os
6 | import boto3
7 |
8 |
9 | class TestCeleryConfig(TestCase):
10 | def test_config(self):
11 | default = get_celery_app()
12 | self.assertIsNotNone(default.conf.broker_url)
13 | self.assertIsNotNone(default.conf.result_backend)
14 | self.assertTrue('amqp' in default.conf.broker_url)
15 |
16 | with mock.patch.dict(os.environ, {
17 | "BROKER_TYPE": "sqs",
18 | "AWS_ACCESS_KEY_ID": "temp",
19 | "AWS_SECRET_ACCESS_KEY": "temp",
20 | "AWS_DEFAULT_REGION": "ap-southeast-2",
21 | "QUEUE_NAME": "test"
22 | }):
23 | with mock_sqs():
24 | queue_name = "test"
25 | sqs_client = boto3.client('sqs')
26 | sqs_client.create_queue(QueueName=queue_name)
27 |
28 | sqs = get_celery_app()
29 | self.assertIsNotNone(sqs.conf.broker_url)
30 | self.assertTrue('sqs' in sqs.conf.broker_url)
31 | self.assertEqual(
32 | sqs_client.get_queue_url(QueueName=queue_name)['QueueUrl'],
33 | sqs.conf.broker_transport_options['predefined_queues']['celery']['url']
34 | )
35 |
36 | with mock.patch.dict(os.environ, {
37 | "BROKER_TYPE": "sqs",
38 | "AWS_ACCESS_KEY_ID": "temp",
39 | "AWS_SECRET_ACCESS_KEY": "temp",
40 | "AWS_DEFAULT_REGION": "ap-southeast-2",
41 | "QUEUE_NAME": "test",
42 | "SQS_CHECK_DURATION": "5"
43 | }):
44 | with mock_sqs():
45 | with self.assertRaises(Exception):
46 | sqs = get_celery_app()
47 |
--------------------------------------------------------------------------------
/application/worker.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.9-alpine AS base
2 |
3 | WORKDIR /usr/src
4 |
5 | ENV PYTHONDONTWRITEBYTECODE 1
6 | ENV PYTHONBUFFERED 1
7 | ENV CRYPTOGRAPHY_DONT_BUILD_RUST 1
8 | ENV PYCURL_VERSION=7_44_1
9 |
10 | COPY ./workers.requirements.txt requirements.txt
11 | RUN set -eux \
12 | && apk add --no-cache --virtual .build-deps build-base \
13 | libressl-dev libffi-dev gcc musl-dev python3-dev \
14 | tiff-dev jpeg-dev openjpeg-dev zlib-dev freetype-dev lcms2-dev \
15 | libwebp-dev tcl-dev tk-dev harfbuzz-dev fribidi-dev libimagequant-dev \
16 | libxcb-dev libpng-dev openssl-dev curl-dev wget
17 |
18 | RUN wget https://github.com/pycurl/pycurl/archive/refs/tags/REL_${PYCURL_VERSION}.tar.gz && \
19 | tar -zxf REL_${PYCURL_VERSION}.tar.gz && \
20 | cd pycurl-REL_${PYCURL_VERSION} && \
21 | python setup.py install && \
22 | cd .. && rm -rf *REL_${PYCURL_VERSION}*
23 |
24 | RUN pip install --upgrade pip setuptools wheel \
25 | && pip install -r /usr/src/requirements.txt \
26 | && rm -rf /root/.cache/pip
27 |
28 | COPY ./entities/ /usr/src/entities/
29 | COPY ./workers/ /usr/src/workers/
30 |
31 | FROM snyk/snyk:python AS scan
32 | ARG SNYK_TOKEN
33 | ENV SNYK_TOKEN=${SNYK_TOKEN}
34 |
35 | COPY workers.requirements.txt requirements.txt
36 | COPY run-snyk-test.sh .
37 |
38 | RUN pip install -r requirements.txt
39 | RUN ./run-snyk-test.sh
40 |
41 | FROM scratch AS scan-result
42 | COPY --from=scan /snyk/output .
43 |
44 | FROM base AS test
45 |
46 | COPY ./tests/worker/ /usr/src/tests/
47 | RUN pytest
48 | RUN touch /usr/src/test.complete
49 |
50 | FROM base AS final
51 | COPY --from=test /usr/src/test.complete .
52 | COPY ./worker.entrypoint.sh /usr/src/entrypoint.sh
53 |
54 | # RUN addgroup -S appgroup && adduser -S appuser -G appgroup
55 | # USER appuser
56 |
57 | ENTRYPOINT [ "sh", "/usr/src/entrypoint.sh" ]
--------------------------------------------------------------------------------
/application/entities/thumbnail.py:
--------------------------------------------------------------------------------
1 | from abc import abstractmethod
2 | from PIL import Image
3 | from io import BytesIO
4 |
5 | import requests
6 | import os
7 | import logging
8 | import boto3
9 | from dotenv import load_dotenv
10 |
11 | load_dotenv()
12 |
13 | logger = logging.getLogger(__name__)
14 |
15 |
16 | class Thumbnail:
17 | __slots__ = ('url', 'filename', 'SIZE', 'STATIC_DIR')
18 |
19 | def __init__(self, url, filename):
20 | self.url = url
21 | self.filename = filename
22 | self.SIZE = 128, 128
23 | self.STATIC_DIR = os.environ.get('STATIC_DIR', '/tmp/static')
24 |
25 | @abstractmethod
26 | def create(self):
27 | logger.info('Begin creation of thumbnail')
28 | content = requests.get(self.url).content
29 | with Image.open(BytesIO(content)) as img:
30 | img.thumbnail(self.SIZE)
31 | img.save(f'{self.STATIC_DIR}/{self.filename}', 'JPEG')
32 | logger.info('Finished creation of thumbnail')
33 |
34 |
35 | class S3_Thumbnail(Thumbnail):
36 | __slots__ = ('s3_bucket')
37 |
38 | def create(self):
39 | logger.info('Begin creation of thumbnail in s3')
40 | content = requests.get(self.url).content
41 | with Image.open(BytesIO(content)) as img:
42 | in_memory_file = BytesIO()
43 | img.thumbnail(self.SIZE)
44 | img.save(in_memory_file, 'JPEG')
45 | in_memory_file.seek(0)
46 |
47 | s3 = boto3.client(
48 | 's3', endpoint_url=os.environ.get("AWS_ENDPOINT", None))
49 | s3.upload_fileobj(
50 | in_memory_file,
51 | self.s3_bucket,
52 | f'thumbnail/{self.filename}',
53 | ExtraArgs={'ContentType': 'image/jpeg'}
54 | )
55 | logger.info('Finished creation of thumbnail in s3')
56 |
--------------------------------------------------------------------------------
/infrastructure/variables.tf:
--------------------------------------------------------------------------------
1 | variable "region" {
2 | description = "AWS region to create resources in"
3 | type = string
4 | default = "ap-southeast-2"
5 | }
6 |
7 | variable "repository_list" {
8 | description = "List of repository names"
9 | type = list(any)
10 | default = ["backend", "worker"]
11 | }
12 |
13 | variable "backend_container_port" {
14 | type = number
15 | description = "Backend container port"
16 | default = 8000
17 | }
18 |
19 | variable "instance_type" {
20 | type = string
21 | description = "EC2 instance type"
22 | default = "t2.micro"
23 | }
24 |
25 | variable "max_instance_count" {
26 | type = number
27 | description = "Max instance count in auto scaling group"
28 | default = 2
29 | }
30 |
31 | variable "environment_variables_map" {
32 | type = map(any)
33 | description = "Map of environment variables"
34 | default = {}
35 | }
36 |
37 | variable "hosted_zone_name" {
38 | type = string
39 | description = "Route 53 hosted zone"
40 | }
41 |
42 | variable "endpoint_name" {
43 | type = string
44 | description = "Route 53 record name"
45 | }
46 |
47 | variable "vpc_id" {
48 | type = string
49 | description = "VPC id"
50 | default = null
51 | }
52 |
53 | variable "private_subnets" {
54 | type = list(string)
55 | description = "List of private subnets"
56 | default = []
57 | }
58 |
59 | variable "public_subnets" {
60 | type = list(string)
61 | description = "List of public subnets"
62 | default = []
63 | }
64 |
65 | variable "instance_security_groups" {
66 | type = list(string)
67 | description = "List of instance security groups"
68 | default = []
69 | }
70 |
71 | variable "lb_security_groups" {
72 | type = list(string)
73 | description = "List of load balancer security groups"
74 | default = []
75 | }
76 |
--------------------------------------------------------------------------------
/application/app/main.py:
--------------------------------------------------------------------------------
1 | from fastapi import FastAPI, HTTPException, Request
2 | from pydantic import BaseModel
3 | from typing import Optional
4 | import requests
5 | from wonderwords import RandomWord
6 |
7 | from fastapi.templating import Jinja2Templates
8 | from fastapi.responses import HTMLResponse
9 |
10 | import os
11 | import logging
12 |
13 | from workers import thumbnail
14 | from dotenv import load_dotenv
15 |
16 | load_dotenv()
17 |
18 | logger = logging.getLogger(__name__)
19 | logger.setLevel(logging.INFO)
20 |
21 |
22 | class Thumbnail(BaseModel):
23 | url: str
24 | filename: Optional[str] = None
25 |
26 |
27 | app = FastAPI()
28 | templates = Jinja2Templates(directory="templates")
29 |
30 |
31 | @app.post("/thumbnail", response_model=Thumbnail)
32 | def create_thumbnail(tn: Thumbnail):
33 | try:
34 | rw = RandomWord()
35 | filename = '_'.join(rw.random_words(
36 | 3, include_parts_of_speech=["nouns", "adjectives"]))
37 | tn.filename = filename
38 |
39 | thumbnail.create_s3_thumbnail.delay(
40 | tn.url,
41 | filename,
42 | os.environ.get("S3_BUCKET_NAME", None)
43 | )
44 | return tn
45 | except Exception as e:
46 | logger.error('Error encountered:{}'.format(e))
47 | raise HTTPException(
48 | status_code=500,
49 | detail="Internal Server Error")
50 |
51 |
52 | @app.get("/thumbnail/{id}", response_class=HTMLResponse)
53 | def load_thumbnail(request: Request, id: str):
54 | source = f'{os.environ.get("THUMBNAIL_BASE_URL", None)}/{id}'
55 | response = requests.get(source)
56 |
57 | if response.status_code == 200:
58 | return templates.TemplateResponse("thumbnail.html", {
59 | "request": request,
60 | "id": id,
61 | "source": source
62 | })
63 |
64 | raise HTTPException(status_code=404, detail="Thumbnail not found")
65 |
--------------------------------------------------------------------------------
/application/workers/config.py:
--------------------------------------------------------------------------------
1 | from abc import abstractmethod
2 | from celery import Celery
3 | from botocore.exceptions import ClientError
4 |
5 | import os
6 | import time
7 | import boto3
8 | from dotenv import load_dotenv
9 |
10 | load_dotenv()
11 |
12 |
13 | class CeleryDefaultConfig:
14 |
15 | @abstractmethod
16 | def get_config(self):
17 | return {
18 | 'broker_url': os.environ.get('BROKER', 'amqp://rabbitmq:5673//'),
19 | 'result_backend': os.environ.get('BACKEND', 'amqp://rabbitmq:5673//'),
20 | }
21 |
22 |
23 | class CelerySQSConfig:
24 | def get_config(self):
25 | return {
26 | 'broker_url': os.environ.get('BROKER', 'sqs://'),
27 | 'broker_transport_options': {
28 | 'region': os.environ.get('AWS_DEFAULT_REGION'),
29 | 'predefined_queues': {
30 | 'celery': {
31 | 'url': self.get_sqs_url()
32 | }
33 | }
34 | }
35 | }
36 |
37 | def get_sqs_url(self):
38 | start_time = time.time()
39 | while time.time() - start_time < float(os.environ.get('SQS_CHECK_DURATION', 60)):
40 | sqs = boto3.client(
41 | 'sqs',
42 | endpoint_url=os.environ.get('AWS_ENDPOINT', None)
43 | )
44 | try:
45 | response = sqs.get_queue_url(
46 | QueueName=os.environ.get('QUEUE_NAME'))
47 | return response['QueueUrl']
48 | except sqs.exceptions.QueueDoesNotExist:
49 | time.sleep(5)
50 |
51 | raise Exception("SQS Queue is not healthy")
52 |
53 |
54 | def get_celery_app():
55 | broker_type = os.environ.get('BROKER_TYPE', 'default')
56 |
57 | config_class_list = {
58 | 'sqs': CelerySQSConfig
59 | }
60 |
61 | app = Celery(__name__)
62 | config_class = config_class_list.get(broker_type, CeleryDefaultConfig)()
63 | app.conf.update(config_class.get_config())
64 |
65 | return app
66 |
--------------------------------------------------------------------------------
/application/tests/backend/test_endpoints.py:
--------------------------------------------------------------------------------
1 | import os
2 | from fastapi.exceptions import HTTPException
3 | from fastapi.testclient import TestClient
4 | from unittest import TestCase, mock
5 | from app.main import app, create_thumbnail, Thumbnail
6 |
7 |
8 | client = TestClient(app)
9 |
10 |
11 | class TestEndpoints(TestCase):
12 | @mock.patch('workers.thumbnail.create_s3_thumbnail.delay')
13 | def test_backend_main(self, mock_worker):
14 | tn = Thumbnail(
15 | url='http://lorempixel.com/400/200/',
16 | filename='filefromtestbackendmain'
17 | )
18 | self.assertEqual(create_thumbnail(tn), tn)
19 | mock_worker.assert_called()
20 |
21 | @mock.patch('workers.thumbnail.create_s3_thumbnail.delay')
22 | def test_create_thumbnail(self, mock_worker):
23 | source_url = "https://jpeg.org/images/jpeg-home.jpg"
24 | response = client.post('/thumbnail', json={"url": source_url})
25 | self.assertEqual(response.status_code, 200)
26 | self.assertIsNotNone(response.json())
27 |
28 | output = response.json()
29 | self.assertEqual(output["url"], source_url)
30 | self.assertIsNotNone(output["filename"])
31 |
32 | def test_create_thumbnail_exceptions(self):
33 | sourceurl = "some url"
34 | tn = Thumbnail(
35 | url="some url",
36 | filename="http://lorempixel.com/400/200/"
37 | )
38 | self.assertRaises(HTTPException,
39 | create_thumbnail,
40 | tn
41 | )
42 |
43 | sourceurl = "https://www.google.com"
44 | response = client.post('/thumbnail', json={"url": sourceurl})
45 | self.assertEqual(response.status_code, 500)
46 |
47 | @mock.patch.dict(os.environ, {
48 | "THUMBNAIL_BASE_URL": "https://jpeg.org/images"
49 | })
50 | def test_load_thumbnail(self):
51 | filename = "jpeg-home.jpg"
52 | response = client.get(f'/thumbnail/{filename}', json={})
53 | self.assertEqual(response.status_code, 200)
54 | self.assertTrue(
55 | f'{os.environ.get("THUMBNAIL_BASE_URL")}/{filename}' in response.content.decode('utf-8')
56 | )
57 |
58 | filename = "Rainbow_on_Mountain_HD_ImageTESTSSSSSSS.jpg"
59 | response = client.get(f'/thumbnail/{filename}', json={})
60 | self.assertEqual(response.status_code, 404)
61 |
--------------------------------------------------------------------------------
/.github/workflows/infrastructure.yml:
--------------------------------------------------------------------------------
1 | name: Infrastructure Deployment
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 |
9 | jobs:
10 | terraform:
11 | name: Infrastructure Deploy
12 | runs-on: ubuntu-latest
13 | defaults:
14 | run:
15 | working-directory: ./infrastructure
16 | env:
17 | TF_WORKSPACE: main
18 | steps:
19 | - name: Checkout
20 | uses: actions/checkout@v2
21 |
22 | - name: Vulnerability scan
23 | uses: snyk/actions/iac@master
24 | env:
25 | SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
26 | with:
27 | args: --severity-threshold=medium
28 | --sarif-file-output=terraform.snyk.scan
29 | sarif: false
30 |
31 | - name: Upload sarif file to Github Code Scanning
32 | if: always()
33 | uses: github/codeql-action/upload-sarif@v1
34 | with:
35 | sarif_file: terraform.snyk.scan
36 |
37 |
38 | - name: Terraform setup
39 | uses: hashicorp/setup-terraform@v1
40 | with:
41 | cli_config_credentials_token: ${{ secrets.TF_TOKEN }}
42 |
43 | - name: Terraform format
44 | run: terraform fmt
45 |
46 | - name: Terraform init
47 | run: terraform init
48 |
49 | - name: Terraform validate
50 | run: terraform validate
51 |
52 | - name: Terraform plan
53 | id: plan
54 | continue-on-error: true
55 | run: |
56 | cp tfvars/$TF_WORKSPACE.tfvars $TF_WORKSPACE.auto.tfvars
57 | terraform plan -no-color
58 |
59 | - name: Attach terraform plan output
60 | uses: actions/github-script@v5
61 | if: ${{ github.event_name == 'pull_request' }}
62 | with:
63 | script: |
64 | const output = `
65 | Terraform Plan Output
66 |
67 | \`\`\`${{ steps.plan.outputs.stdout }}\`\`\`
68 |
69 |
70 | `;
71 |
72 | github.rest.issues.createComment({
73 | issue_number: context.issue.number,
74 | owner: context.repo.owner,
75 | repo: context.repo.repo,
76 | body: output
77 | });
78 |
79 | - name: Check terraform plan status
80 | if: ${{ steps.plan.outcome == 'failure' }}
81 | run: exit 1
82 |
83 | - name: Terraform Apply
84 | if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
85 | run: terraform apply -auto-approve
86 |
87 |
88 |
--------------------------------------------------------------------------------
/.github/workflows/application.yml:
--------------------------------------------------------------------------------
1 | name: Application Deployment
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 | pull_request:
8 |
9 | jobs:
10 | app-build:
11 | environment:
12 | name: main
13 | url: ${{ steps.create_release.outputs.html_url }}
14 | name: Build and publish docker images
15 | runs-on: ubuntu-latest
16 | strategy:
17 | matrix:
18 | repository: [backend, worker]
19 | steps:
20 | - name: Checkout
21 | uses: actions/checkout@v2
22 |
23 | - name: Python module dependency scan
24 | working-directory: application
25 | env:
26 | SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
27 | DOCKER_BUILDKIT: 1
28 | run: |
29 | docker build -f ${{ matrix.repository }}.Dockerfile \
30 | --target scan-result \
31 | --output type=local,dest=${{ matrix.repository }} \
32 | --build-arg SNYK_TOKEN=${SNYK_TOKEN} .
33 |
34 | - name: Check snyk scan status
35 | run: |
36 | result=$( cat application/${{ matrix.repository }}/snyk.sarif | \
37 | jq -r '.runs[].results | length'
38 | )
39 | exit $result
40 |
41 | - name: Configure AWS credentials
42 | uses: aws-actions/configure-aws-credentials@v1
43 | with:
44 | aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
45 | aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
46 | aws-region: ${{ secrets.AWS_REGION }}
47 |
48 | - name: Login to AWS ECR
49 | uses: aws-actions/amazon-ecr-login@v1
50 | id: login-ecr
51 |
52 | - name: Build docker image
53 | working-directory: ./application
54 | env:
55 | ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
56 | DOCKER_BUILDKIT: 1
57 | IMAGE_TAG: ${GITHUB_SHA::8}
58 | run: |
59 | docker build -f ${{ matrix.repository }}.Dockerfile \
60 | -t $ECR_REGISTRY/${{ matrix.repository }}:${{ env.IMAGE_TAG }} .
61 |
62 | docker tag $ECR_REGISTRY/${{ matrix.repository }}:${{ env.IMAGE_TAG }} \
63 | $ECR_REGISTRY/${{ matrix.repository }}:latest
64 |
65 | - name: Security scan on docker image
66 | uses: snyk/actions/docker@master
67 | id: docker-image-scan
68 | continue-on-error: true
69 | env:
70 | SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
71 | with:
72 | image: ${{ steps.login-ecr.outputs.registry }}/${{ matrix.repository }}
73 | args: --file=./application/${{ matrix.repository }}.Dockerfile
74 | --severity-threshold=low
75 | --sarif-file-output=./application/${{ matrix.repository }}/docker.snyk.sarif
76 | sarif: false
77 |
78 | - name: Upload sarif file to Github Code Scanning
79 | if: always()
80 | uses: github/codeql-action/upload-sarif@v1
81 | with:
82 | sarif_file: application/${{ matrix.repository }}
83 |
84 | - name: Check docker image scan status
85 | if: ${{ steps.docker-image-scan.outcome == 'failure' }}
86 | run: exit 1
87 |
88 |
89 | - name: Publish docker image
90 | if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }}
91 | run: docker push --all-tags ${{ steps.login-ecr.outputs.registry }}/${{ matrix.repository }}
92 |
93 |
94 |
95 |
96 |
--------------------------------------------------------------------------------
/infrastructure/.terraform.lock.hcl:
--------------------------------------------------------------------------------
1 | # This file is maintained automatically by "terraform init".
2 | # Manual edits may be lost in future updates.
3 |
4 | provider "registry.terraform.io/hashicorp/archive" {
5 | version = "2.2.0"
6 | hashes = [
7 | "h1:CIWi5G6ob7p2wWoThRQbOB8AbmFlCzp7Ka81hR3cVp0=",
8 | "zh:06bd875932288f235c16e2237142b493c2c2b6aba0e82e8c85068332a8d2a29e",
9 | "zh:0c681b481372afcaefddacc7ccdf1d3bb3a0c0d4678a526bc8b02d0c331479bc",
10 | "zh:100fc5b3fc01ea463533d7bbfb01cb7113947a969a4ec12e27f5b2be49884d6c",
11 | "zh:55c0d7ddddbd0a46d57c51fcfa9b91f14eed081a45101dbfc7fd9d2278aa1403",
12 | "zh:73a5dd68379119167934c48afa1101b09abad2deb436cd5c446733e705869d6b",
13 | "zh:841fc4ac6dc3479981330974d44ad2341deada8a5ff9e3b1b4510702dfbdbed9",
14 | "zh:91be62c9b41edb137f7f835491183628d484e9d6efa82fcb75cfa538c92791c5",
15 | "zh:acd5f442bd88d67eb948b18dc2ed421c6c3faee62d3a12200e442bfff0aa7d8b",
16 | "zh:ad5720da5524641ad718a565694821be5f61f68f1c3c5d2cfa24426b8e774bef",
17 | "zh:e63f12ea938520b3f83634fc29da28d92eed5cfbc5cc8ca08281a6a9c36cca65",
18 | "zh:f6542918faa115df46474a36aabb4c3899650bea036b5f8a5e296be6f8f25767",
19 | ]
20 | }
21 |
22 | provider "registry.terraform.io/hashicorp/aws" {
23 | version = "4.23.0"
24 | hashes = [
25 | "h1:JDJLmKK61GLw8gHQtCzmvlwPNZIu46/M5uBg/TDlBa0=",
26 | "zh:17adbedc9a80afc571a8de7b9bfccbe2359e2b3ce1fffd02b456d92248ec9294",
27 | "zh:23d8956b031d78466de82a3d2bbe8c76cc58482c931af311580b8eaef4e6a38f",
28 | "zh:343fe19e9a9f3021e26f4af68ff7f4828582070f986b6e5e5b23d89df5514643",
29 | "zh:6b8ff83d884b161939b90a18a4da43dd464c4b984f54b5f537b2870ce6bd94bc",
30 | "zh:7777d614d5e9d589ad5508eecf4c6d8f47d50fcbaf5d40fa7921064240a6b440",
31 | "zh:82f4578861a6fd0cde9a04a1926920bd72d993d524e5b34d7738d4eff3634c44",
32 | "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
33 | "zh:a08fefc153bbe0586389e814979cf7185c50fcddbb2082725991ed02742e7d1e",
34 | "zh:ae789c0e7cb777d98934387f8888090ccb2d8973ef10e5ece541e8b624e1fb00",
35 | "zh:b4608aab78b4dbb32c629595797107fc5a84d1b8f0682f183793d13837f0ecf0",
36 | "zh:ed2c791c2354764b565f9ba4be7fc845c619c1a32cefadd3154a5665b312ab00",
37 | "zh:f94ac0072a8545eebabf417bc0acbdc77c31c006ad8760834ee8ee5cdb64e743",
38 | ]
39 | }
40 |
41 | provider "registry.terraform.io/hashicorp/local" {
42 | version = "2.2.3"
43 | hashes = [
44 | "h1:aWp5iSUxBGgPv1UnV5yag9Pb0N+U1I0sZb38AXBFO8A=",
45 | "zh:04f0978bb3e052707b8e82e46780c371ac1c66b689b4a23bbc2f58865ab7d5c0",
46 | "zh:6484f1b3e9e3771eb7cc8e8bab8b35f939a55d550b3f4fb2ab141a24269ee6aa",
47 | "zh:78a56d59a013cb0f7eb1c92815d6eb5cf07f8b5f0ae20b96d049e73db915b238",
48 | "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
49 | "zh:8aa9950f4c4db37239bcb62e19910c49e47043f6c8587e5b0396619923657797",
50 | "zh:996beea85f9084a725ff0e6473a4594deb5266727c5f56e9c1c7c62ded6addbb",
51 | "zh:9a7ef7a21f48fabfd145b2e2a4240ca57517ad155017e86a30860d7c0c109de3",
52 | "zh:a63e70ac052aa25120113bcddd50c1f3cfe61f681a93a50cea5595a4b2cc3e1c",
53 | "zh:a6e8d46f94108e049ad85dbed60354236dc0b9b5ec8eabe01c4580280a43d3b8",
54 | "zh:bb112ce7efbfcfa0e65ed97fa245ef348e0fd5bfa5a7e4ab2091a9bd469f0a9e",
55 | "zh:d7bec0da5c094c6955efed100f3fe22fca8866859f87c025be1760feb174d6d9",
56 | "zh:fb9f271b72094d07cef8154cd3d50e9aa818a0ea39130bc193132ad7b23076fd",
57 | ]
58 | }
59 |
60 | provider "registry.terraform.io/kreuzwerker/docker" {
61 | version = "2.15.0"
62 | constraints = "2.15.0"
63 | hashes = [
64 | "h1:NEBNtKNukqr6qk5vWu8Xx/nHBVNNdlty0hrFG76K7AE=",
65 | "zh:0241e5c7b66c14aa54e367dfe380fbde8388d3254cbe8a70717c12f71897e82b",
66 | "zh:0f162f0a01ffe9eec32e78dfc2a5b05a373230c41f041439efa3f4b68903fdcb",
67 | "zh:1c222c1425fbb0367154bcb8e4d87b19d6eae133fbb341f73102fa3b300f34bf",
68 | "zh:679206433e31d8fa69d95167af6d2cd762218e89811b735ee20bd8da19f97854",
69 | "zh:a16baab045bc7a709a9767816304cc5548aa2ee0b72c0eee49e3826e6a46a3fd",
70 | "zh:a29c4e304a6a7faf5b651a61a91a1aa2e837591cff049fbe1c747b6319e43956",
71 | "zh:bed7a69dbb9a024aecfac840ca2ac2f1527062f3d9c8c718e4e81d464b5ad329",
72 | "zh:c22aa10806de216b6aa0b36a2c1114a9fdaa5b47925aaad3333de3ce24cc52c9",
73 | "zh:d034295663d8a39035fd6fdf0488b72544b13f48acaee797af967343248676f8",
74 | "zh:d9001dfeac0db1799d8ab9d04be090522529baae0dba7f7e82b71f2168f05582",
75 | "zh:d9f3eb7ef8f256eb9148d72bd4a00e34f3be5570484598e26b603cbdc5eed923",
76 | "zh:ef573f1e0f000127fa9f569c8ee320f03ba1d302a6fbf9aac8300efa6fc6f4b2",
77 | "zh:ef7e246b4205202161b4119c10a1282f74243e029508184132731f9f6f6d9f4c",
78 | ]
79 | }
80 |
--------------------------------------------------------------------------------
/infrastructure/main.tf:
--------------------------------------------------------------------------------
1 |
2 |
3 | ## Setup proper credentials to push to ECR
4 |
5 | # Create docker run configuration file
6 | resource "local_file" "docker_run_config" {
7 | content = yamlencode({
8 | version = "3.8"
9 | services = {
10 | backend = {
11 | image = "${aws_ecr_repository.repository["backend"].repository_url}:latest"
12 | ports = ["80:${var.backend_container_port}"]
13 | env_file = [".env"]
14 | }
15 | worker = {
16 | image = "${aws_ecr_repository.repository["worker"].repository_url}:latest"
17 | env_file = [".env"]
18 | }
19 | }
20 | })
21 | filename = "${path.module}/ebsource/docker-compose.yml"
22 | }
23 |
24 | # Compress the docker run config file
25 | # Refer to data reference setup
26 |
27 | # Create s3 bucket to store my docker run config
28 | resource "aws_s3_bucket" "docker_run_bucket" {
29 | bucket = "docker-run-bucket-${terraform.workspace}"
30 | acl = "private"
31 |
32 | server_side_encryption_configuration {
33 | rule {
34 | apply_server_side_encryption_by_default {
35 | sse_algorithm = "AES256"
36 | }
37 | }
38 | }
39 |
40 | tags = local.tags
41 | }
42 |
43 | # Create s3 object from the compressed docker run config
44 | resource "aws_s3_bucket_object" "docker_run_object" {
45 | key = "${local.docker_run_config_sha}.zip"
46 | bucket = aws_s3_bucket.docker_run_bucket.id
47 | source = data.archive_file.docker_run.output_path
48 | server_side_encryption = "AES256"
49 | tags = local.tags
50 | }
51 |
52 | # Create instance profile
53 | resource "aws_iam_instance_profile" "ec2_eb_profile" {
54 | name = "event-driven-ec2-profile"
55 | role = aws_iam_role.ec2_role.name
56 | tags = local.tags
57 | }
58 |
59 | resource "aws_iam_role" "ec2_role" {
60 | name = "event-driven-ec2-role"
61 | assume_role_policy = data.aws_iam_policy_document.assume_policy.json
62 | managed_policy_arns = [
63 | "arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier",
64 | "arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker",
65 | "arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier",
66 | "arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilderECRContainerBuilds",
67 | "arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy",
68 | "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
69 | ]
70 |
71 | inline_policy {
72 | name = "eb-application-permissions"
73 | policy = data.aws_iam_policy_document.permissions.json
74 | }
75 | tags = local.tags
76 | }
77 |
78 | # Create eb app
79 | resource "aws_elastic_beanstalk_application" "eb_app" {
80 | name = "event-driven-app"
81 | description = "event-driven-app beanstalk deployment"
82 | tags = local.tags
83 | }
84 |
85 | # Create eb version
86 | resource "aws_elastic_beanstalk_application_version" "eb_version" {
87 | name = local.docker_run_config_sha
88 | application = aws_elastic_beanstalk_application.eb_app.name
89 | description = "application version created by terraform"
90 | bucket = aws_s3_bucket.docker_run_bucket.id
91 | key = aws_s3_bucket_object.docker_run_object.id
92 | tags = local.tags
93 | }
94 |
95 | # Create eb environment
96 | resource "aws_elastic_beanstalk_environment" "eb_env" {
97 | name = "event-driven-env"
98 | application = aws_elastic_beanstalk_application.eb_app.name
99 | solution_stack_name = "64bit Amazon Linux 2 v3.4.17 running Docker"
100 | version_label = aws_elastic_beanstalk_application_version.eb_version.name
101 | cname_prefix = "event-driven-app"
102 | tags = local.tags
103 |
104 | dynamic "setting" {
105 | for_each = var.vpc_id != null ? [1] : []
106 | content {
107 | namespace = "aws:ec2:vpc"
108 | name = "VPCId"
109 | value = var.vpc_id
110 | }
111 | }
112 |
113 | dynamic "setting" {
114 | for_each = length(var.private_subnets) > 0 ? [1] : []
115 | content {
116 | namespace = "aws:ec2:vpc"
117 | name = "Subnets"
118 | value = join(",", var.private_subnets)
119 | }
120 | }
121 |
122 | dynamic "setting" {
123 | for_each = length(var.public_subnets) > 0 ? [1] : []
124 | content {
125 | namespace = "aws:ec2:vpc"
126 | name = "ELBSubnets"
127 | value = join(",", var.public_subnets)
128 | }
129 | }
130 |
131 | dynamic "setting" {
132 | for_each = length(var.instance_security_groups) > 0 ? [1] : []
133 | content {
134 | namespace = "aws:autoscaling:launchconfiguration"
135 | name = "SecurityGroups"
136 | value = join(",", var.instance_security_groups)
137 | }
138 | }
139 |
140 | setting {
141 | namespace = "aws:autoscaling:launchconfiguration"
142 | name = "IamInstanceProfile"
143 | value = aws_iam_instance_profile.ec2_eb_profile.name
144 | }
145 |
146 | setting {
147 | namespace = "aws:autoscaling:launchconfiguration"
148 | name = "InstanceType"
149 | value = var.instance_type
150 | }
151 |
152 | setting {
153 | namespace = "aws:autoscaling:asg"
154 | name = "MaxSize"
155 | value = var.max_instance_count
156 | }
157 |
158 | setting {
159 | namespace = "aws:elasticbeanstalk:environment"
160 | name = "LoadBalancerType"
161 | value = "application"
162 | }
163 |
164 | setting {
165 | namespace = "aws:ec2:vpc"
166 | name = "ELBScheme"
167 | value = "internet facing"
168 | }
169 |
170 | setting {
171 | namespace = "aws:elasticbeanstalk:environment:process:default"
172 | name = "MatcherHTTPCode"
173 | value = 200
174 | }
175 |
176 | setting {
177 | namespace = "aws:elasticbeanstalk:environment:process:default"
178 | name = "HealthCheckPath"
179 | value = "/docs"
180 | }
181 |
182 | dynamic "setting" {
183 | for_each = merge(var.environment_variables_map, {
184 | THUMBNAIL_BASE_URL = "https://${aws_s3_bucket.thumbnail_bucket.bucket_regional_domain_name}/thumbnail"
185 | S3_BUCKET_NAME = aws_s3_bucket.thumbnail_bucket.bucket
186 | QUEUE_NAME = aws_sqs_queue.queue.name
187 | BROKER_TYPE = "sqs"
188 | AWS_DEFAULT_REGION = var.region
189 | })
190 | content {
191 | namespace = "aws:elasticbeanstalk:application:environment"
192 | name = setting.key
193 | value = setting.value
194 | }
195 | }
196 |
197 | dynamic "setting" {
198 | for_each = {
199 | Protocol = "HTTPS"
200 | SSLCertificateArns = aws_acm_certificate.cert.arn
201 | SSLPolicy = "ELBSecurityPolicy-TLS-1-2-Ext-2018-06"
202 | }
203 | content {
204 | namespace = "aws:elbv2:listener:443"
205 | name = setting.key
206 | value = setting.value
207 | }
208 | }
209 |
210 | setting {
211 | namespace = "aws:elbv2:listener:default"
212 | name = "ListenerEnabled"
213 | value = false
214 | }
215 |
216 | dynamic "setting" {
217 | for_each = length(var.lb_security_groups) > 0 ? [1] : []
218 | content {
219 | namespace = "aws:elbv2:loadbalancer"
220 | name = "SecurityGroups"
221 | value = join(",", var.lb_security_groups)
222 | }
223 | }
224 |
225 | setting {
226 | namespace = "aws:elasticbeanstalk:cloudwatch:logs"
227 | name = "StreamLogs"
228 | value = true
229 | }
230 |
231 | setting {
232 | namespace = "aws:autoscaling:updatepolicy:rollingupdate"
233 | name = "MinInstancesInService"
234 | value = 1
235 | }
236 | }
237 |
238 | # Setup output variable to show endpoint url to eb app
239 | # Refer to variable in output.tf
240 | resource "aws_route53_record" "endpoint" {
241 | zone_id = data.aws_route53_zone.zone.zone_id
242 | name = var.endpoint_name
243 | type = "A"
244 |
245 | alias {
246 | name = aws_elastic_beanstalk_environment.eb_env.cname
247 | zone_id = data.aws_elastic_beanstalk_hosted_zone.current.id
248 | evaluate_target_health = true
249 | }
250 |
251 | }
252 |
253 | resource "aws_acm_certificate" "cert" {
254 | domain_name = var.hosted_zone_name
255 | subject_alternative_names = ["*.${var.hosted_zone_name}"]
256 | validation_method = "DNS"
257 | tags = local.tags
258 |
259 | lifecycle {
260 | create_before_destroy = true
261 | }
262 | }
263 |
264 | resource "aws_route53_record" "validation_record" {
265 | for_each = {
266 | for d in aws_acm_certificate.cert.domain_validation_options : d.domain_name => {
267 | name = d.resource_record_name
268 | record = d.resource_record_value
269 | type = d.resource_record_type
270 | }
271 | }
272 |
273 | allow_overwrite = true
274 | name = each.value.name
275 | records = [each.value.record]
276 | ttl = 60
277 | type = each.value.type
278 | zone_id = data.aws_route53_zone.zone.zone_id
279 | }
280 |
281 | resource "aws_acm_certificate_validation" "validation" {
282 | certificate_arn = aws_acm_certificate.cert.arn
283 | validation_record_fqdns = [for record in aws_route53_record.validation_record : record.fqdn]
284 | }
285 |
286 | resource "aws_s3_bucket" "thumbnail_bucket" {
287 | bucket = "event-driven-thumbnail-bucket"
288 | acl = "private"
289 | tags = local.tags
290 |
291 | server_side_encryption_configuration {
292 | rule {
293 | apply_server_side_encryption_by_default {
294 | sse_algorithm = "AES256"
295 | }
296 | }
297 | }
298 | }
299 |
300 | resource "aws_s3_bucket_policy" "public_read" {
301 | bucket = aws_s3_bucket.thumbnail_bucket.id
302 | policy = jsonencode({
303 | Version = "2012-10-17"
304 | Statement = [
305 | {
306 | Effect = "Allow"
307 | Principal = "*"
308 | Action = ["s3:GetObject"]
309 | Resource = ["${aws_s3_bucket.thumbnail_bucket.arn}/thumbnail/*"]
310 | }
311 | ]
312 | })
313 | }
314 |
315 | resource "aws_sqs_queue" "queue" {
316 | name = "event-driven-queue"
317 | kms_master_key_id = "alias/aws/sqs"
318 | kms_data_key_reuse_period_seconds = 300
319 | }
320 |
--------------------------------------------------------------------------------
/.dccache:
--------------------------------------------------------------------------------
1 | {"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/integration_worker.py":[129,1630006270035.815,"eed348d0892b9e4b5f9fc567c652662ab8a61c7d95c3d2ae4117537b157c800f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/app/__init__.py":[0,1630006270033.9656,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/app/main.py":[1660,1634432422233.6487,"bd2d3d86b962d12a92c78752b75e6effa5a642c5df0db420185ea5cbc5606b43"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/entities/__init__.py":[0,1630006270035.0464,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/entities/thumbnail.py":[1612,1630733811494.3967,"25d672cbad2dd04498cbd1b9ad0e87c1881794b66b9bb5502a74bb7595c3cee1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/templates/thumbnail.html":[182,1630006270037.1587,"362ac4cb1ee7863d5caa387cb18e4e5f72a5dfef44aee96c0bf862794603ded5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/__init__.py":[0,1630006270037.3445,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/workers/__init__.py":[0,1630006270039.4587,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/workers/config.py":[1772,1630733811499.3655,"d27d421d97cca5559217d7a112b317dc03ac4c701f084210ddf876d86d36fe14"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/workers/thumbnail.py":[474,1630733811499.9512,"8ab02ca76f6c3fd75d021b76064f98407e15d58235bb403fba083fb539ae7451"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/backend/__init__.py":[0,1632481571113.6213,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/backend/test_endpoints.py":[2165,1633818844895.036,"dac75128778c7ce14d9d7d6755e0474dce35ab140a059467afb84396bb9968e5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/worker/__init__.py":[0,1631522106381.258,"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/worker/test_celery_config.py":[1641,1633818844896.5295,"88744d6f58383ff79fa3a3460a2ddc73061fda3a8ba48c1406d6f1560f5f5173"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/worker/test_entities.py":[1361,1631522327993.5771,"f78d454b0f52d138770834df4704ba444868256434814fbd13e44c3d58c23c0e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/application/tests/worker/test_workers.py":[700,1631522339316.5374,"08a9397f626bad674dd7bfd24e8551cb10d7df17cc56612a82c7bdd060d78593"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/distPackage.py":[1203,1633756636652.5615,"21009bc6ef2ad01baa4b8599de27ba6125c735730978b49d2a111404afb0b1a3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/package.py":[844,1633756636661.983,"f6ec56623397a8a61f11d8ba58e112e425b420e61d5dcd3278a7ef28428efede"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pip_resolve.py":[12476,1633756636665.9922,"e43b19825b2e71d071b3c249c9d45bcd60779671bac982630ce50758b8a4d1be"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pipfile.py":[1788,1633756636661.6343,"26583350f08edb0e25459b60a41bec3084b3108495fff6200acc73cb0f1f1cde"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/reqPackage.py":[1508,1633756636660.0254,"88f09752fc78fd5c9100d3c26dcc89972e2c3b1b08ceed7b92a7a32f5f2bd35e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/setup_file.py":[1427,1633756636666.5908,"87d7f724486086151e8badffa16186c8855592e44571fed5786c5c2a081f14e1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/test_pip_resolve.py":[6291,1633756636667.0664,"6642b79cefffabfb88e8d30c98fb32ea19f6a26329080f2761701296ab37b0b7"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/utils.py":[2258,1633756636664.4502,"40121736003100fa5adeddbf4148f758344fb860a43f67eff0d89dfe049c04d6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/gosrc/resolve-deps.go":[13987,1633756634069.9053,"721efa3085e73fc8535f2b17e2601ab349da8f4b241cec08ab3c499fc5dbead9"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/110.index.js":[1834,1633756634073.1304,"ee8d46c4924a2f1ab7121c322eee0dbf96b964d0f51327a2102f1e9322020929"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/139.index.js":[769111,1633756634097.634,"d38af7617a81176afeb5a49198b8afe44cfcb641d6dc7e3afae5459adea0c008"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/200.index.js":[58649,1633756634098.565,"40d42f3042ae65ccb26d0b8fd4f7a53b62734c85b9508cdd7637d58c6d05e9e1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/409.index.js":[33570,1633756634101.8933,"cf2b86031d51b1f1a52a92a9efa6b25c2f98221f7fa7230016abb0f5fec5a5ef"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/477.index.js":[2569,1633756634114.19,"547b2b8dc6dca2eac91b5f6665c1fc59de794e21a17650bd9311631a4b1cf138"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/522.index.js":[3501,1633756634103.9604,"c79aea0de54f4c6686e0ad4b6de8be4b7ec4067ea5827c8708a82f2ae99a1f0c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/535.index.js":[568159,1633756634173.7705,"eccff9f0a337889a87b2ff14268dc48b3c9f74e62fe0922b06bf321176593bda"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/542.index.js":[5400,1633756634185.5618,"a3346358e90524d895041d2c2869b91d44f76e59576135d185c38cc9f3522d14"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/622.index.js":[304806,1633756634199.3723,"aa52b4c32c57c80434e1248ae50b8049cf045c452109b4cc84de09ee10cb0f32"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/64.index.js":[8629189,1634348036886.2307,"74e09960ad14f0781a19498794cc0ed524862a6cb99a78029e849bb8771d9bde"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/708.index.js":[24251,1634348036996.8445,"c5b579b99b5e4015b25196f6b0d6c9fb8330bfb017c98c9201316060c3c4ba89"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/741.index.js":[105976,1633756635108.8606,"bc720636ce167ba51156b2307d0c8a69c20643758ebf1e24fc0edad1185ad06e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/77.index.js":[1115697,1633756635194.5452,"ad8a32e182190bb0c9ff809789c148fa7d43cf5020a0a0eb7b924a776415bd10"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/784.index.js":[225397,1634348037147.776,"681f972a09c6368a0cb9b165a3fcf5640fd953a2576ac2d1a3ce9f1aeb16f1f1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/788.index.js":[26512,1633756635182.3787,"274cbbcb122405d1c52c0cdc0e82f95c4d97574a3c63334ae94142409f695501"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/855.index.js":[1252,1633756635186.7026,"656f5a00aa59133fc6e078c0ad8da9b83ce5f894ec1aee4bae2d26a4095f6022"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/862.index.js":[1418,1633756635186.4304,"4f2ea925e30e1fd84fab90a8286838b1ada2f5b8c1f81b0bc0a507423bd271d9"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/917.index.js":[4172176,1634348037490.2588,"d50b3914ebe846c7aaa1b40adfdec3958091f4f394255b42cee8ece840c50ce4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/959.index.js":[22576,1633756635449.3005,"9c08af0b5c96527a64c8f7631a82de19cb9840472c9331ba76fd9638e243d981"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/970.index.js":[529,1633756635449.3596,"78bdc755cc7edca17498a5b493223d85944c76d709a525f6bcf01dd4234879d4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/974.index.js":[20818,1633756635453.9653,"9a4a3ce397b25e9999081be0c4ee47b788acb185d6fc0c0d143a2c91fac6652a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/args.d.ts":[571,1633756636694.8909,"01209e18d9146a72d34ca82057b55124c1230cd9a8c1fa846225e0499fb05f52"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/copy.d.ts":[82,1633756636713.9102,"e358619dbdefe13a77bc14f819d2a9d1a655343e1d3e2492b8dbaaa37aab0ef7"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/index.d.ts":[11,1603874218190.8103,"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/index.js":[1347523,1634348037640.0935,"a3e5ba3acc056e404b31ab3752bf890be120e2d937609c11bf3e321ca0fa004d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/modes.d.ts":[202,1633756636868.8728,"9ce439dba8b35ccc4d75b6d59295c3088a276d37bb0a42d4c807d962b0da5f8f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/runtime.d.ts":[115,1633756636975.145,"579cef550575b5d39c72a138dc1181604b25bcaf5206dd2e486ff15f3b1c2df1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/alerts.d.ts":[345,1633756636694.8325,"4bd1205729905735a381b20046378bb798f72be4440bb81a47c21a9286dfd853"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/api-token.d.ts":[382,1633756636694.7637,"8ce750fc304386b62332820e7eb8f5a4b9b2c6c7248a5e5b46a64d03490cacec"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/authorization.d.ts":[143,1633756636722.813,"d9d6b4beeef36314a6be7648f424c16c4ecae0fb86c90ec3a4dd97f6cc0766b3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/common.d.ts":[58,1633756636702.0537,"613c9a86acf1144a9549772a7f6cee63aca9d82ddbb9a0f2ba196815acf74973"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/config.d.ts":[370,1633756636701.769,"16460e7a396d5d4569b932bf9be664d276e68d3b159938752bddcc6153bd4f1c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/constants.d.ts":[203,1633756636723.4702,"9195c92d2d5508ac818355f6ab506cdf3e92764a47ac9b9b2131a18af6386eec"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/detect.d.ts":[579,1633756636713.9863,"9d70c4ebfad7bd5584e028d76fd10b3003a27181a23129f5c8eff4bc41f64808"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/display-policy.d.ts":[63,1633756636734.1594,"6e3aabdb8b4b6b24f91f6e816bcdda6cd2faa5a4841525b19f1823059e31dbcf"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/error-format.d.ts":[101,1633756636740.1555,"541df9269b77fc47e95801cebdf6e83f80302a8693f5f1d49a8a5a4c0f81617c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/exec.d.ts":[79,1633756636721.0212,"0a3ac268014a34a3eda175328c875f8873c4b05aa35c073381c122af9d2fa977"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/find-files.d.ts":[988,1633756636728.7678,"0325db7dc298310afab2b1b62be0954bfa6515e1227ae7dd451c8d096a594ed1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/get-file-contents.d.ts":[121,1633756636762.818,"def3e280334fe0237d33554422c2d2578114a79629ee2110e53c09391e398471"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/is-ci.d.ts":[41,1633756636791.0168,"05de01c285dbdb5f06010f5f589d9d20fb498c80b29782d860e7542981cfc745"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/is-docker.d.ts":[45,1633756636870.5857,"70862c64a8dcf702f0c383e5a832c19cb03ff0384d66af437f1cfdc998da8d1a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/is-multi-project-scan.d.ts":[206,1633756636791.1506,"1ce43faced8e1d25f00ca6a8f08d9134c1e8c0946094af1a67151353ebdf1da4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/json-file-output.d.ts":[1106,1633756636791.0593,"3764a02f3b760bc221c937c1d9fa0ade7a79a027f74ea6a4ea56d693e9a90d9e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/json.d.ts":[364,1633756636871.006,"6c35bac128f134f20e65dc918e572d37c3184760535de514082be92e70d9e385"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/metrics.d.ts":[1470,1633756636881.2117,"7ef1119d997cb553dd1023ae54c665407620b8ad52f76a55494817131133c931"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/npm.d.ts":[202,1633756636960.3867,"e2dc1789f49d54dc8d11e5879357b2373e1d0bdd9063da3df36446b0ae172cc5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/options-validator.d.ts":[289,1633756636978.0115,"310b4b963179526ac98481b76ebdc59006d320427941d0c596d12ff55cac6f3c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/package-managers.d.ts":[1841,1633756636878.3381,"dbefdbb6c6d95a256679fa4edf409d0e409c7a23243509b8805929875cf1702c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/print-deps.d.ts":[406,1633756636936.1782,"c8c1f794fe543d77f1190c9a34686eb1c17020ddfec96c19f69a0fab1a3d1b67"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/prune.d.ts":[251,1633756636936.32,"5ab411466aec341a77842e0034841f2420358c7304ea0ac3d87f08034c3701e5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/query-strings.d.ts":[122,1633756637026.7363,"d69fedbe5d4f5f45f0c183d1e4873663a05c579c63fef43cf5e4f4289afc3212"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/reachable-vulns.d.ts":[513,1633756636936.4866,"6c1f2f11ec1f706607b1008d63eb0315091e8e2ebc2aa02acb4e7f5ba8482bf2"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/right-pad.d.ts":[80,1633756637057.761,"f0fda78661e462607ed2659a83e27f944b56a80da787d05bb9382042ef09ba3f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/spinner.d.ts":[280,1633756636975.3066,"e5af0a65ad9154c9cd760dfef434ac0e3acde4520b8bf81d50fad3b97adedc8d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/sub-process.d.ts":[115,1633756636977.4995,"267684724329a9afb28c82a3f042b4c6435d4b519f3b52f7cccb3ea9885af2ee"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/theme.d.ts":[452,1633756637003.2727,"39f7d6d063bef0c40816e34ed2489e874752a159d90a7e5534d4acfec4b61b91"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/types.d.ts":[5782,1634348039847.7166,"05a239ea632d84fbbb723815f2f793492504e2b04837b635f94ec4e362a59b45"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/user-config.d.ts":[294,1633756637117.488,"6d172a512511cad7aca0d040f1bdcd0c1d97413cee9833aa4842bd7f67503fcb"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/utils.d.ts":[268,1633756637119.6616,"3dc33b90b527fe68ac2d75c439e6b7c4cb5de2a45fe3db2eaa6b492e11c3965f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/version.d.ts":[283,1633756637112.282,"c3ee3ca45d6944149554e588e80c97f060d1c5676a81185bbe722ff8bcd29586"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/vuln-helpers.d.ts":[607,1633756637112.4753,"5845d2883efd965e092ab8a771e27ace29291d46a2227d28732d2620125122b7"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/yarn.d.ts":[129,1633756637111.688,"5d57d218f68bfcfed91ba2be73abd885e9c6048e322facd592035ed61d4d9ce2"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/help/generator/generator.ts":[4001,1633756636737.5737,"23c16059e07fef5b1cc651c14dfa8431f5c41d4f4b147b67f17b3bb097e4bf3a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pytoml/__init__.py":[92,1633756636652.472,"ab5d97bf6dd3b5ae3882d2b81c62baf06af8b4a7dc8882e27453e63eea08a88a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pytoml/core.py":[509,1633756636661.1921,"f42acb2d3b353dd5a3130467633b7f8b87611dc66f1b1b3f1ac3256005f7898e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pytoml/parser.py":[11254,1633756636661.8823,"b2a6c3007913035989261719fd313292cc4664d33a14d919c2a346d85a6b3535"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/pytoml/writer.py":[3815,1633756636668.806,"fa648e5466a218bae98f905147b7339aab995c919f95c1251ebc00777dc9e3c0"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/requirements/__init__.py":[353,1633756636658.7427,"2ec54f53204ef9c38bb0162a9c4b620a4410b583b2fb842a7a84325a2d2f3f8b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/requirements/fragment.py":[1352,1633756636652.6677,"9a0f61a3d1bd3ba0ff6b19f83cd302792bd0a52636ea94665212091d2c0e85b8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/requirements/parser.py":[3092,1633756636664.706,"692cfb7547147ff92b10ac9c8dbc1c48cef63e822cb28dd2d9e23bc23d97b97d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/requirements/requirement.py":[8925,1633756636667.4373,"46eefb38cdb9d779105a9d145decbc64ec0fe02e12cc8a60ef150b590f11626f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/pysrc/requirements/vcs.py":[405,1633756636663.783,"982ef6b0359bcf35d4b991d90b0db9790ddd262b57208e44e00637920f321c4c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/config.d.ts":[112,1633756636701.8923,"3676697deef4183731013c27ea62cba52afa158a91e70b9a5971a179601a62fe"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/help.d.ts":[72,1633756636752.133,"209cb00d0416e53623f54ae17bc094aa32211d056d82f56e3f2463f7eaafbcb2"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/ignore.d.ts":[109,1633756636782.751,"5be722f23fbd5dc622ba0de70210d43cd3ef79b17ad6392041eea6b82ce5cd46"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/policy.d.ts":[71,1633756636878.871,"20233c2a0c6174f910ced787ff15922308114901acf97fba758c1c9e03aec687"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/process-command-args.d.ts":[184,1633756636935.154,"8b4da0905fbc21c153263834c2c3c91d2ee569e226642f1f99bca23dcbb1fbbd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/types.d.ts":[1194,1633756637103.785,"9d3373858d4066d1211affa07711fbabf7e7b0baccce38c93409f9bf64133f16"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/version.d.ts":[52,1633756637111.5796,"fa502f56d177ee62eb3cd1a24af1994d41ad102a779065b0ee52a440bfa3be82"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/woof.d.ts":[95,1633756637111.908,"d9e30e4fa0b36bfecdd2df1ef59fba5ded6f962d767d9c5ba149b94a95dc8802"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/analytics/getStandardData.d.ts":[189,1633756636751.3271,"e05be9ea745a069b84ced8fcb978b65927a2a4fdb358b27c8193ee5894d9b645"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/analytics/index.d.ts":[1001,1633756636772.8916,"fec937339e0afafe9209b8c772463c6c84dcd7a162ad19bca938e57dc9951506"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/analytics/sources.d.ts":[1137,1633756636977.5376,"db863945002696c44b5a1280a62133981926b45a0e7f4201a5011ebaa6c9f660"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/analytics/types.d.ts":[471,1633756637103.3699,"6cf4123a3c4d712e663551c78a0286bedf652eb3f74ca0ae814209b366ef0185"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/container/index.d.ts":[723,1633756636773.163,"d22cdcdad121f04d7532c10651daa1d927e6812ccb18c3816cdb068263623d59"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/authentication-failed-error.d.ts":[143,1633756636701.4985,"5157b1023d7b46d7198a5073a6876b9bcdcccaa0efba4dac600399a18d649aa6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/connection-timeout-error.d.ts":[167,1633756636701.606,"7a9f4fd0cc1a005e8bc3242d73e5baefda74af1f5acb824f3f117c1e2bdd50a6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/custom-error.d.ts":[206,1633756636734.6045,"7f292ba13f385c9ce761119921af0665ec69e470c05c31dac2305463f5fd872c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/docker-image-not-found-error.d.ts":[179,1633756636714.9792,"eecbf9e0a63b399534120b9154621a2586de0058cc835f99ba2adf9315669c4e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/empty-sarif-output-error.d.ts":[201,1633756636740.0112,"ba93679c2742fcef2b783ae73483968367971fa9d9c5ec9709e41ec9c6e57393"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/exclude-flag-bad-input.d.ts":[200,1633756636720.4006,"b9fd6af8682dc69ec84495bab77100eadc13a82af1814b34026c3bfa54e62b19"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/exclude-flag-invalid-input.d.ts":[204,1633756636720.566,"6174859f70fcfe6624bc1935732547174665c26f8f1119e54a1fe80f3c77f60d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/fail-on-error.ts.d.ts":[156,1633756636720.6582,"28e105e75935e0e262924fca047ac62f7fd89bd4441c64a3264bca4b07e73976"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/failed-to-get-vulnerabilities-error.d.ts":[278,1633756636720.798,"63754ecd2ccdc47853d6188fd42ad73a568a4901266af24609060c366af5279d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/failed-to-get-vulns-from-unavailable-resource.d.ts":[158,1633756636741.0432,"34f1f027bad8544755cf200ba9bf102f1a6b68c0d0368c9d2430b17f2e1309b1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/failed-to-load-policy-error.d.ts":[237,1633756636740.11,"1354c91d031b5b8c47504574f78b45c46253f18f8019c5ad19d222265a6d98fd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/failed-to-run-test-error.d.ts":[198,1633756636721.2534,"e3747d8d09d3678c1654d0092a468fad26f23bf6b232ee4d8d390742108da92b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/feature-not-supported-by-package-manager-error.d.ts":[331,1633756636741.2615,"22b3a94597f9f619b98eb8f2fba36c3b7e999ac45b96bda071b89826fa402dd6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/file-flag-bad-input.d.ts":[197,1633756636752.8196,"d48b6548a1de6e5427f3099243b4e7f994bb722219c7d0defddad80a834888e6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/index.d.ts":[2057,1634348039709.466,"a842ffda3f9a6e8ec742658efbdb4476ae6482e74342c17a872f861b05917525"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/internal-server-error.d.ts":[249,1633756636781.4954,"5c1c6de8ebc3647ad844cb53eeffd2e7a14f91b5d78b4789fb5a26c05341d58b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/invalid-detection-depth-value.d.ts":[137,1633756636870.2405,"b09bfea3f80a99dc866510df052bfcf94d818a9fdcecb4959365e2f8172ccc36"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/invalid-endpoint-config-error.d.ts":[171,1633756636790.8474,"0cfe30c7b0d270b71dc6fc20e855faef293d33d5e307c307e01671145570f1e3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/invalid-iac-file.d.ts":[616,1633756636870.3284,"1e3a787320da7e18ecbfee3b915c7394c2c5f1e141c91600d1b70c325436aadd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/invalid-remote-url-error.d.ts":[166,1633756636870.8513,"ad8de841283f1f043f8123e6f62e58899f73cbd2bd46a7ffb32271ae80b294cd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/json-file-output-bad-input-error.d.ts":[203,1633756636791.3098,"d0aba640f124080afac4893f548f5a28bb9231e7848d4056781a573efd921ecc"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/misconfigured-auth-in-ci-error.d.ts":[108,1633756636868.7556,"b10daac4956ecbb31fb47f6f017275e6178366fca644852ad950e46ec34907ac"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/missing-api-token.d.ts":[234,1633756636868.9536,"6f38d30d787e3c2dfbe3f30e7ead078e9e2258e1acb4fd1f1effd151fb3a0a06"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/missing-arg-error.d.ts":[126,1633756636959.3303,"f51d05eb0fcf369e3beb4a078ba62b53fc360d21466984254b33067e74a60bf5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/missing-option-error.d.ts":[163,1633756636959.1545,"894f0c8fa08086e458f903c3a70ccf1dff0b89d61acce50e159f0fdca39441f3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/missing-targetfile-error.d.ts":[121,1633756636869.2153,"13f8c8f7231c807ea5092e204d8962aa9af375059423590722c2b8fe01b229f6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/monitor-error.d.ts":[185,1633756636869.3452,"92cb851f43ba49f94b7f4f00b6bfe62a9f10fb8c5dbdb1cc1ad3758184de5362"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/no-supported-manifests-found.d.ts":[138,1633756636869.467,"5621c377638c8a8877556e3fd972fd54b9f6dbbc71fc2ccbc4216bb65881debe"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/no-supported-sast-files-found.d.ts":[165,1633756636960.2173,"6dedf80e67f1e095e92612c3edcee572fc5dccea7577055399a4fdbaf788a5e5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/not-found-error.d.ts":[205,1633756636959.0017,"c93d9c645fc8f75a60f4062309dae1dde020d3665710139e2efa282ea248733f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/not-supported-by-ecosystem.d.ts":[353,1633756636869.8606,"6877fa233a62539dfe25febf95bdaf975c33515b71a053f78898f139e2d0e322"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/policy-not-found-error.d.ts":[233,1633756636878.954,"de09fd951cda978a16425fe942e240e974012302a43c576e8947297b57034778"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/token-expired-error.d.ts":[104,1633756637104.5684,"9584c2021085435624904fa19d24e5927d783e469193e5083a3d3c9b9b20fdb6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/too-many-vuln-paths.d.ts":[230,1633756637001.8025,"5f97e2914a196661ba305ec4b6fdd7b852568ffa4c1cca2765933bd8882be953"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/unsupported-feature-flag-error.d.ts":[210,1633756637117.424,"ce2560bf615dda1e2308729c71fc0b0104d3bc948e2c0baaba856e9776177d87"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/unsupported-feature-for-org-error.d.ts":[225,1633756637109.836,"a4d7d28877f1d6f47b003e9cba0a6ef5df4f58d918c9d06a73c3500c9786a1db"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/unsupported-option-combination-error.d.ts":[238,1633756637108.5588,"b6ac74d7120c9a0bfd861b34f4e7c570bce25d04ea3584a39951793dc0f05b51"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/unsupported-options-iac-error.d.ts":[211,1633756637109.6206,"90531b141a29aaa11445c243ea49bb27fd3a3c6f84f1b0042cca42be4baf6fe7"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/unsupported-package-manager-error.d.ts":[194,1633756637117.768,"8971742becb16ce95bc0ee9b1a1eaee23a7af75f7693b7c0e4dc569d0a415170"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/errors/validation-error.d.ts":[141,1634348039850.2195,"53eeada28eb33ea8e33c2ccfa06c9b110b5e8fcb387ef23ac1efbf9d0870c66b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/index.d.ts":[683,1633756636772.837,"8b58761958958d3eb5839d0aa42dceea12cab3c5c0fccc88e1dbaac1feeb240c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/monitor.d.ts":[735,1633756636959.072,"6bcffbae19772c385e153981a22c8ecfa3aa5a15a1ad45441bc89fec3eaf186a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/plugin-analytics.d.ts":[157,1633756636878.7925,"0d1511e101dd8f654d5e3c0a2dbd40d5ff5b6045b2c46e7770b4638423a4f96e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/plugins.d.ts":[128,1633756636978.055,"dd8bac485bace7e15ec983c75437af5b77376efcb47118e32b5c5452cfbd17b4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/policy.d.ts":[232,1633756636980.3396,"6a16eea472bbb320d9f533a31d7d630cef32a987aa88c9caa89bd5ecc69360fd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/resolve-monitor-facts.d.ts":[294,1633756636958.0044,"8da37c0161b93e385a98be2e55fd5e901d837c3a4727dbef49e9c0aaa6fde6d9"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/resolve-test-facts.d.ts":[262,1633756636936.6638,"38e70b12cc172f68508958ae87903bffee88e6a4490dc1adf2eba436600f7657"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/test.d.ts":[469,1633756636996.5647,"2a9d001d8cdb47e26d7d3d4bde46e2da2c7d4767836e0f8e1d905da42c69b666"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/ecosystems/types.d.ts":[2822,1633756637103.1804,"4daa04bc160106173807a35697366fb47d345526762443c98f32ccd7c2e09536"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/feature-flags/fetchFeatureFlag.d.ts":[156,1633756636728.245,"266040311e2e4a947ac137fccab96b077fe095c67dd15cb2ae463030622e6c40"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/feature-flags/index.d.ts":[168,1633756636772.97,"311107b69b762eb69c09f14e02e51f083077cd5831bb0a861364c6ff8c1b4b55"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/feature-flags/types.d.ts":[133,1633756637104.508,"992db7b5b3010a371a0e7f2bbfb00c84a2fc2f0e3e43fa44f385d7b4a01d792a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/format-error-result-summary.d.ts":[83,1633756636729.0444,"5173de977e90a90d29b8d67f5304e1c6d79365a3552ec3795709050ff36e08ae"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/format-monitor-response.d.ts":[335,1633756636753.7764,"7a45a1895f938d10dee27efbf917b11d0d1b1f5656cc8f6cc7311ce21e50b5e0"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/format-reachability.d.ts":[741,1633756636732.0288,"2ca7f4bbe888e3232055fca661665a199e4c76d49b919e47c8f65c36480e033c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/format-test-meta.d.ts":[299,1633756636737.8943,"5ec2d2b8372c21a0fe369bb9ed4d0d0e2023cdbe80f7b078a2464e2f7a46b836"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/format-vulnerable-result-summary.d.ts":[172,1633756636762.1577,"5cd383b0bbb7b087f8f8a9f796c73c99c845ff74e6ab54afc261a8b1382d14b4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/get-severity-value.d.ts":[127,1633756636751.652,"2de4b7d0617eca741ca1e39b5c487446e3a97d384b6f8859f42250230ef2298a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/iac-output.d.ts":[970,1633756636783.2896,"6bca3e174c06c3ae6aacef034a3d1f895335f61dbf0c814fc95c4045f32322cf"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/index.d.ts":[595,1633756636780.8806,"ceacc1c98cf8e1967d8676f9c5d90ee734581fd8f1f00d5a50becf4e7929a08b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/legacy-format-issue.d.ts":[266,1633756636791.6152,"e0f7d14ce8eca672042fb618da7c09da1d528d304f151adb6cb4ffd78b0beb17"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/legal-license-instructions.d.ts":[183,1633756636880.3474,"e812da83e1279e7eba006aedec88b72ced3cc1593f7e1c5e9c3b722f06c569f8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/open-source-sarif-output.d.ts":[434,1633756636962.8123,"6cf519f59ef6b3d889afcdb55da3f82ed189018b27891cf701df5aa12cd06a1b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/remediation-based-format-issues.d.ts":[778,1633756636936.0264,"8768cd5405aa3295667c1763ef971b73932b320fd26885b3c9fc1530c9816039"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/sarif-output.d.ts":[307,1633756636975.2146,"442613e17e7220a8f02ce53709ec3fb5a126e9d2a5a9cf5607aa97ecb23cc644"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/show-all-projects-tip.d.ts":[111,1633756636975.3542,"108f90122c96d3a437d82e0699c665fbff0c6144922146ae47a26162996d8789"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/show-all-sub-projects-tip.d.ts":[117,1633756636975.258,"90c86b74010a4d1c06821e8879fa2b9cd2baf8f1dfd7abf66ae218cb0615ae4f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/show-fix-tip.d.ts":[251,1633756637101.3308,"75086e332ae1b705d9802bd0a7de68d7acb5a7ecea415ba86a595a841a30115d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/show-multi-scan-tip.d.ts":[309,1633756637060.0706,"5c8eabb615078ace8263a5cfe9d0709c02be99929d5fd75a921cc173b2951a35"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/types.d.ts":[764,1633756637115.072,"d00a8d12252fed0954cb2917a145c0628e0a69ee6e253ddad0f4d3d3659b3d4c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/count-total-deps-in-tree.d.ts":[116,1633756636733.1582,"29d3c7aa95eb5f1599f380dda046bc81b081bd3098789f9a7074f439678fae5f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/dev-count-analysis.d.ts":[2183,1633756636734.485,"c0a934219b1b43cb2b1f692f0c76b86f89d62b60031fe3ea99b43b21491098d7"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/drop-empty-deps.d.ts":[146,1633756636720.2227,"d4ee4ccd45cf211d1f9a493ee1c8caffb1166fc12d22f49694104d49c09dbbe3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/filter-out-missing-deps.d.ts":[215,1633756636728.568,"36323d7396427a80dc10490ab8a12f4b0de50b1db71cb7a0b7a28b78a3ffa63f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/index.d.ts":[900,1633756636781.187,"906d5a020beeb5a3b524e043d92220cdc13c7323b66d14c024eafae5b25b0248"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/prune-dep-tree.d.ts":[132,1633756637005.3977,"858ff4a4f02174d2936eeec48ebd795aa99431008d14609021ecc2f8950c3d0b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/monitor/utils.d.ts":[736,1633756637110.9915,"5e8be7c9ad98b1e918e3769c3d2c420214e4555ff18325f7659a25ba95c4850e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/module-info/index.d.ts":[258,1633756636861.3555,"c2155ad33014a42d1955cc5a4abbbc591ac4b7b889eb7a3711b07f89ea68e756"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/iac/constants.d.ts":[850,1633756636723.7393,"bb86dbf4b80049132e36630eddc321060dfc5be15098f91b4a82e73927ab2628"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/iac/detect-iac.d.ts":[152,1633756636714.2139,"e30e9b1228e86df03da15412f9d3ed1fc20b3fb4a9dfd6392e9ecf5b2ddb57ad"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/iac/iac-parser.d.ts":[353,1633756636783.0493,"37d39f70c3ae2fc26be760f192bad4c5d14def75397321ea6be4347a1f14f76b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/iac/makeDirectoryIterator.d.ts":[369,1633756636858.892,"98dc6df789acd531d562f296754f4ba45a1a7b522cd2918f1d4d8e32b53a728e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/convert-multi-plugin-res-to-multi-custom.d.ts":[388,1633756636733.1106,"b0258318de89bd1c0ab93d9dccbf41c542a0c716a10642ad303122b7ec4c5abc"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/convert-scanned-projects-to-custom.d.ts":[484,1633756636733.449,"394e8eff16826941d4707ad1bbff71e5a347ff04a4aab665db74d727df2b844a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/convert-single-splugin-res-to-multi-custom.d.ts":[369,1633756636712.3967,"e954051d306827b0247d9d3698cadb4929967265ce58ecb0e870c2d751e14775"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/extract-package-manager.d.ts":[424,1633756636740.0654,"ab9eea27677f6828692adbf874560f64b7c7f94c26287f7a9092aab9a6cfd852"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/get-deps-from-plugin.d.ts":[590,1633756636739.2378,"cd161f7de55ce6bbca49caa0ce127586391a96785df55f3122c8b8af8ee2b292"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/get-extra-project-count.d.ts":[248,1633756636762.5835,"e43fc3fc6377a6f04b8318290e7129b45abedaeb32733859a7133d8cff91a82e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/get-multi-plugin-result.d.ts":[980,1633756636773.9907,"47554d58553f65b1d7c2408c980e17b14cdafb57039d9c2f2046d731625704bd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/get-single-plugin-result.d.ts":[297,1633756636774.421,"e9ccb8ac5ce1c5e58535f2ce153a52faf284926919009c6d07bf6a1e4918f4df"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/index.d.ts":[202,1633756636781.3606,"71fb4017b7997d183150db255c9405fa74f7cf8a1c1c885815233a2969c90cbc"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/types.d.ts":[632,1633756637104.0085,"af66b31b14cd6c599d8b154173866244a7fea45c97cb21cf2b941492c2bb29ed"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/policy/find-and-load-policy.d.ts":[474,1633756636753.284,"d2c5f29cab1f2f429f98dc9797522d1ca4a4d6a2a175f1088a0376e720ba2580"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/policy/index.d.ts":[110,1633756636781.7988,"1ddc5ae0514b1af3cf4bea7617a91401022f907cc741d76e59d4258b8d8f2e17"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/policy/pluck-policies.d.ts":[133,1633756636978.09,"157a7586ce17504d736f6c0e7c978f37a9dc127a8a35a69375fe3af4458fc9ca"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/polling/common.d.ts":[330,1633756636723.6401,"44be4f4e98e58892e2c22f46523bc0ee435b552aac3e7807ab5109b01de0c2f8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/polling/polling-monitor.d.ts":[585,1633756636996.3557,"b6dc3b42875693438454155be4dab5162fbf6dfcd169c104179f30f599e025e3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/polling/polling-test.d.ts":[552,1633756636934.8213,"12b6483c8d0a8ca871f4f1672378746d1373c91304df13119109bf4b9b4c3757"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/polling/types.d.ts":[1110,1633756637103.537,"6314d5320f84b86dc33e22afff973e96c8e2aa11660155f055bd986ebea70737"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/project-metadata/index.d.ts":[420,1633756636781.6677,"c280bbb1650ffa81636edb6d34751389d58e44bab9a1bd67ae30d4650a3cd588"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/project-metadata/types.d.ts":[204,1633756637117.0745,"b4c462c8ec27335f26af25f90542cc629e6f13426abf464d43e7ce6f99020b2f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/request/index.d.ts":[320,1633756636782.6274,"99eab2017f079801f10641159e9a51f74dcc0986e87ab6dac297f73822befa11"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/request/promise.d.ts":[66,1633756636935.6782,"e11d51cae04abb00df06b221f13a1a1f678caec728987c4a45d37ab4e59935bf"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/request/request.d.ts":[185,1633756636936.7542,"b259958ac365fe036afd68ac449fced1dda4f966ee0bb04463f2ac9551f2fff3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/request/types.d.ts":[317,1633756637106.2642,"6e6ea2dbb4d57180b7e93965435c5ee5d474ccb5ed642899cdffec80804e8649"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/sln/index.d.ts":[122,1633756636782.5068,"57dbec31850684ca3fc6e2110be52c9c3d78957b31062383c69dcc54d6021f5b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/protect/fetch-patch.d.ts":[96,1633756636721.3345,"4bb8dda40903c014a61e0e5fb835633fd3363ae67c283d6c736a018782e1b8a0"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/assemble-payloads.d.ts":[289,1633756636716.6025,"1f61e3b71eed51e76afe9b45e46fb25ffbae0a145ba0257c4e89e1d330682ea9"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/common.d.ts":[647,1633756636723.0566,"b73572d41e461dd8bcc188d4b747ba45af7bc7ad4b4088e8c5331eb50bfa1eef"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/iac-test-result.d.ts":[2010,1633756636761.259,"15d4c9142eb2c1de34f94c2dc9a8e7da455c5ab0f38e6fde65cf7504d7f72012"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/legacy.d.ts":[7276,1633756636859.1318,"340bf2b1d12fe48911d8e8b0e868dc61ea75e914482c2ccaf35eeee1c68d3912"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/payload-schema.d.ts":[474,1633756636879.0408,"cfc4bffbf63db93c0b795a66625accc48d9497c7858b5e628b70148b13744ed1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/run-iac-test.d.ts":[685,1633756636975.0403,"6ff3559d30325755ebf9bcc15c3702011cd00648d69f7994f77c0ff7b4e4f395"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/run-test.d.ts":[261,1633756636975.1018,"9934d53658fb6ef4511809967b90f3b86aee952727f8309da22239c7625817f3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/snyk-test/types.d.ts":[1153,1634348039834.325,"f287a15963704bf0708ee1377e6dc3f73854ed3f4727771ebe6a934fdd6558c4"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/auth/index.d.ts":[150,1633756636783.1772,"483bfa9cba8359e6daaed94b9cfca56c5b33d974196f0954871422c60fb86a77"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/auth/is-authed.d.ts":[113,1633756636870.4402,"4d2c85ab62e6a09c989d0c4753ae60f22f7284fade6fd0b29d91f99b3218d064"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/monitor/index.d.ts":[693,1633756636773.3604,"827af725d5f5322afe16b01d1725db46725bb8dd590c64c6f5c194d0f2ecded8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/monitor/process-json-monitor.d.ts":[149,1633756636935.3552,"aa678dffc4a2a243f18990d200a0988288991e97dac7d17b87524e088a9f56d6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/monitor/types.d.ts":[248,1633756637026.8313,"697e97af43944065cce3b272679bf868c1a4b630bff08de490b655328975c875"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/convert-legacy-test-result-to-new.d.ts":[236,1633756636701.6714,"d188e0d298d42ac63511f9e1bf8594ef95238efe84414a889cb496bed9d0990a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/convert-legacy-test-result-to-scan-result.d.ts":[217,1633756636711.6755,"2d2429a00c920993c6a5f7d25760b1869ee5524063cffa13e1140cc07b9580ed"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/convert-legacy-tests-results-to-fix-entities.d.ts":[342,1633756636714.1428,"c0dd2e34077191c836e223bcba06ea680c5407d7bfdbb16ad450d6d450c18330"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/get-display-path.d.ts":[62,1633756636761.9998,"0fe80a2e1d29aa9b198e75e716eb6cdf06c3c55f2e6d919bd92579af708804f3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/index.d.ts":[108,1633756636772.7732,"1c208c652cb1357baf3f651e305a04d61c96372511c4d7da99263e286830f7ad"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/fix/validate-fix-command-is-supported.d.ts":[164,1633756637111.2327,"58bdc934667404fb56e10b12cfeb606521aec5a82d5ccf8697edc4b68f6d2823"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/protect/index.d.ts":[188,1633756636853.2585,"72a279769c1335767c259ca9d6daecffe7b2290b6478788266b8466bf3ee825f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/protect/prompts.d.ts":[1048,1633756636935.5447,"5b5d6fd45bf87cc6347b56b620881b4165182c26ae60d0e530b25140cbc9772b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/protect/tasks.d.ts":[140,1633756636996.4497,"76332f45fe53ef3ba9fefdd97974ee10f74977b9eddd0de9bbfa61ab6565f972"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/protect/wizard.d.ts":[369,1633756637111.9966,"88971a8ad7eb6df2af1a19d753709c8e8b7bdfdc24d9ce9f51851efb71d7f52b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/format-test-error.d.ts":[58,1633756636739.0574,"f426cf2c33e7fdc53d3e286aa04aceaf6fdec87c1d2615a66ae302cdd408669c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-test-shim.d.ts":[463,1633756636782.844,"897aba4c5ed5a10210e3294c4f48bde0b221ca5b69b40e1e93037a0e25dc670d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/index.d.ts":[178,1633756636772.7026,"e36aa908ef36718383194a2679dc512c1e0cb9055ee4ef2d554001bc6c35738e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/set-default-test-options.d.ts":[197,1633756636975.3882,"a3dacb24650fdd52f20b5a1e7b01d33bbcf5e50a9ec497d658c7ed0444a1b671"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/utils.d.ts":[166,1633756637119.8071,"7a6d3b0ec7b002dfadad5153d7daddbb499094f28d29caf1a4a22e4bd4c294a1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/validate-credentials.d.ts":[142,1633756637111.6362,"69a0810b088aeef19fad1f665f4f14cc8a256f0efde30ca262d31b3d156068b3"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/validate-test-options.d.ts":[142,1633756637111.111,"67e3b19eb540235cc74a5512d33aad34fdd97518bb648d509aace8fc0e7b3134"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/woof/getWoof.d.ts":[100,1633756636775.0752,"5eba9ef91fb52b71002f26d67fbd7684cd5f0202e5e94ac59fa2c6bcd764c39d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/docker/format-docker-advice.d.ts":[138,1633756636752.912,"07d6dbaf33b3c3ee0dc81b9681bab21e897a560d56c781345e59de2a1651f5d5"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/docker/format-docker-binary-heading.d.ts":[73,1633756636753.3667,"d7176c1ad5c29201d295f406638fc40afb9bf29c600987461f6e4ab4fdc6a753"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/docker/format-docker-binary-issues.d.ts":[212,1633756636753.452,"7c4b81edab8464b082882c3deaad641be97f93c5a0dc97602180a335031ef056"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/docker/index.d.ts":[222,1633756636781.0337,"ea5ad28b89d93fda30de3dbdbe4f237556e0ddd2829609a4ad410a10d0af9954"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/test/display-result.d.ts":[243,1633756636713.8457,"18b524d0d16cbd8b0ee71fad508cd8f064c9a8eaf17537510cd556d4690990b2"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/formatters/test/format-test-results.d.ts":[956,1633756636737.3127,"a0eb815a6fbc207e64e25f3c55c604e01733a13a5483041ef1d208a6fdbcf441"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/nodejs-plugin/index.d.ts":[228,1633756636861.7925,"e4c47bcbd99de39fd6e3bc8e577229c90162e2734aa112e1a3794489c5df158a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/nodejs-plugin/npm-lock-parser.d.ts":[192,1633756636869.7556,"f2304d28d1c26f18ec0b5ac40e35a69b10c0d475bbc022d9762439edd7122142"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/nodejs-plugin/npm-modules-parser.d.ts":[215,1633756636961.2095,"0ae76af1c1d31c3eebd5bbd32239e7ddb024afd056272409551fc05325bc0340"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/nodejs-plugin/yarn-workspaces-parser.d.ts":[483,1633756637113.2388,"7daf250099136407a980613650c3b515dfdac231189373d50603344db294b835"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/rubygems/index.d.ts":[168,1633756636861.447,"6258f41a8bf6884aae7bd80b875ad51de6b6b9f85286cd471777da8a9cf992a6"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/analysis.d.ts":[177,1633756636716.4844,"cd9b166d7729b00f76c73083cfe5770f5b30eccc3c847f7baa77a7d47fb038fe"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/checks.d.ts":[362,1633756636722.7234,"f612f27026f29820edc85003f30bbe3a28f4b4f15bae92754cc17b54287f02ec"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/index.d.ts":[108,1633756636861.6697,"ee8307846a3cd8814adb2ac9c144470260972c7c3c568717c27f2251b2d4ba11"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/validate.d.ts":[114,1633756637111.1716,"89c940625aedab042c788ba0820b887edd6b0b8b7915e221fb976244b2d5c6ba"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/project-metadata/target-builders/container.d.ts":[298,1633756636723.853,"ae184eb5e3e76e24dfd994554fd3ab01d55e6dc766ca211219ee28669f4189e8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/project-metadata/target-builders/git.d.ts":[124,1633756636773.909,"608490ba89edf94d6b80f91ad9393368f4c6ebb3ab5e9d017517a99626479237"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/errors/unsupported-feature-snyk-code-error.d.ts":[233,1633756637108.3784,"c36d933f8786038c79a59f8a672e81958970deeb27d5a5df70a2f22758caedb9"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/analytics.d.ts":[690,1633756636694.368,"ca9c74deae810aa8c25ee6bacf202931449ea5ebc0c70f0e4213594844e5ed4c"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/assert-iac-options-flag.d.ts":[852,1634348039598.093,"771cd92287c68e9a41279b35bc0d5051b83f52d5280644f3f51ff4fbea47fb8e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/error-utils.d.ts":[66,1633756636739.6838,"1883d0189bb5d0f5a39e64311007f4020b630f37aa42cd9b58d673066f7d5a06"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/extract-line-number.d.ts":[309,1633756636720.463,"420e87267eb3af67a34cf580b4be2878b7525ca670d3de9303f3f6d512eb587a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/file-loader.d.ts":[501,1633756636753.106,"a058cafe271d6107609bb1bdf868df3c5ed621f8ce684eb09827259931b69ba0"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/file-parser.d.ts":[459,1633756636752.6267,"9ce3e13fc6d040bdcdc0e805884e5ef02cffa6a532fd77e1f9baa50894ae18d8"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/file-scanner.d.ts":[484,1633756636753.2212,"7dab46d0f11d68bdb6f5320b7e56a66af7c32a238615093e5ad5aa4316997748"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/file-utils.d.ts":[248,1634348039648.7664,"ca3acd4b2ca5e1c2f27ce2f8024c3fa6b42126c7c62a89a9b8b250fc29c5aa9d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/index.d.ts":[367,1633756636853.8777,"48a378ec7671f9ce271af87657e648a9f2b284f8100b8c0a6c1a46c22d1ede9b"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/local-cache.d.ts":[1020,1634348039722.1963,"f0e8768f6d63f57d7b5519d7d733bc50ddfc64a2c731d49ff9a469781989c45e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/math-utils.d.ts":[286,1633756636881.1167,"e1870f7525018ebcdf3690449de2e16e67666f46e08a2f9715b9df7f0e679a4a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/measurable-methods.d.ts":[2443,1633756636860.2263,"3a2c84d5dcb58c9296457eb9eb652186873825d3804e386c8bca78bf16ede18a"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/policy.d.ts":[283,1633756636878.6873,"f3f4104524dc794f3ffc85a59e30acd723d685cba1f8901416c23369a565bada"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/results-formatter.d.ts":[588,1633756636968.9436,"1ed25ad146aea54dd9375f70d634e1271320a5c8560ce8697f1f2a5b7ea49d98"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/types.d.ts":[5778,1634348039834.5212,"20405675b0f6c7653d4d79e502baa0f627b64e14aec3de1ddff878d08019e0a1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/usage-tracking.d.ts":[368,1633756637108.802,"7b00145047925bf4c085edeaeed880dc103ff0ae0ed26641f6a4ffcb25c78548"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/yaml-parser.d.ts":[374,1633756637112.363,"bb9b9172af97493d32bd9b740af08c3fa89d7ebfe0dbb3cace80fbb2a30c40c1"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/rubygems/inspectors/gemfile.d.ts":[172,1633756636762.2522,"0c199946410b72eb9dced20f8f633b816813db4b84cc012c1bcf33dcfa67da5e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/rubygems/inspectors/gemspec.d.ts":[172,1633756636762.2522,"0c199946410b72eb9dced20f8f633b816813db4b84cc012c1bcf33dcfa67da5e"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/rubygems/inspectors/index.d.ts":[224,1633756636781.2756,"0b15ee9bbb3cd087524c5c31091a07250a0c534fe213eec46659fab25b1c7a6d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/rubygems/inspectors/try-get-spec.d.ts":[226,1633756636996.9934,"28ce18c4c000c7031c1cc88a1515dfb453255ea1b522e50561c0b245b75ca4fa"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/format/output-format.d.ts":[311,1633756636878.5022,"6045102e1067023488dbf90cf60ef67a51e356b30c9740b2eaade403f0694243"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/utils/index.d.ts":[56,1633756636781.4329,"206f56e33f0303fa853021263869c84857aa31e54066375689e7db63ca425503"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/lib/plugins/sast/utils/testEmitter.d.ts":[56,1634348039804.7603,"d3473f9da66e1a81143641d2f7254e38a6e0180736279413a6d0e8c4f087fb1d"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/org-settings/apply-custom-severities.d.ts":[212,1633756636694.6526,"de69de28a605fe39ae4d313dd9a745d330d24695759e24e5e3d7f4771eaad581"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/org-settings/get-iac-org-settings.d.ts":[301,1633756636751.472,"615536a61fa17db565eda12d69135907e7c729cf8b824463adbe997b40d04e68"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/parsers/k8s-or-cloudformation-parser.d.ts":[381,1633756636791.4197,"40300b610d9e0c3a4c910f31765dbf21a7221880eaa14a90f906fb0369c35fcd"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/parsers/path.d.ts":[60,1633756636978.9639,"008e7457cb2faf791c76bc95b5ef1f97806e87d05e9a69de02e3cd7a10efd4ba"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/parsers/terraform-file-parser.d.ts":[318,1633756636996.9126,"6d8d37cee18258019e8b02f2c4408771e55a8437c4655ae43e7525f2c5fe061f"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/parsers/terraform-plan-parser.d.ts":[532,1633756637106.3567,"00efdfe13f855ec60f0e22622487190fc059dc5e484e03b1c34cb9092c58aec0"],"/Users/gabuzo/workspace/git/infrastructure-for-event-driven-system/node_modules/.pnpm/snyk@1.737.0/node_modules/snyk/dist/cli/commands/test/iac-local-execution/parsers/hcl-to-json/index.d.ts":[81,1633756636853.5566,"1fa57ed249cb21f5d1b7aed0686eb6dba736c96932eebdd5968795beae3942a5"]}
--------------------------------------------------------------------------------