├── .circleci └── config.yml ├── .dockerignore ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── openapi.yml ├── .gitignore ├── .proxy_coveragerc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── Pipfile ├── Pipfile.lock ├── README.md ├── app ├── __init__.py ├── adzerk │ ├── __init__.py │ ├── api.py │ ├── transform.py │ └── validation.py ├── client.py ├── conf │ ├── __init__.py │ ├── adzerk_cfg.py │ ├── domain_affinities_cfg.py │ ├── geolocation_cfg.py │ ├── s3_cfg.py │ ├── sentry_cfg.py │ └── spocs_cfg.py ├── config.py ├── exceptions │ ├── __init__.py │ ├── base_exception.py │ ├── invalid_content_type.py │ ├── invalid_param.py │ └── missing_param.py ├── geolocation │ ├── __init__.py │ └── factory.py ├── main.py ├── middleware │ ├── __init__.py │ └── proxy_headers.py ├── provider │ ├── __init__.py │ ├── geo_provider.py │ ├── sentry_provider.py │ └── session_provider.py ├── telemetry │ ├── __init__.py │ ├── handler.py │ └── requirements.txt └── validation.py ├── cloudformation ├── README.md ├── proxy-service.yaml └── vpc │ ├── README.md │ ├── nat.yaml │ ├── private-subnet.yaml │ ├── public-subnet.yaml │ ├── vpc.yaml │ └── vpc_parameters.json ├── conftest.py ├── docker-compose.yml ├── gunicorn.py ├── images ├── app │ └── Dockerfile ├── nginx │ ├── Dockerfile │ └── nginx.conf └── s3 │ └── download.sh ├── openapi └── openapi.yml └── tests ├── README.md ├── __init__.py ├── api ├── __init__.py └── test_api.py ├── fixtures ├── GeoIP2-City-Test.mmdb ├── __init__.py ├── mock_decision.py ├── mock_factory.py ├── mock_placements.py └── mock_spoc.py ├── load ├── script.yml └── serverless.yml ├── scripts ├── timer.sh └── wsgi_profiler_conf.py └── unit ├── __init__.py ├── test_adzerk_api.py ├── test_adzerk_transform.py ├── test_adzerk_validation.py ├── test_app.py ├── test_app_validation.py ├── test_geolocation_factory.py ├── test_geolocation_provider.py └── test_telemetry_handler.py /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | #All Files 2 | * @pocket/Ads 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.github/ISSUE_TEMPLATE.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/openapi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.github/workflows/openapi.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.gitignore -------------------------------------------------------------------------------- /.proxy_coveragerc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/.proxy_coveragerc -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/Makefile -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/Pipfile -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/Pipfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/README.md -------------------------------------------------------------------------------- /app/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/adzerk/__init__.py: -------------------------------------------------------------------------------- 1 | __all__ = ['api', 'transform'] 2 | -------------------------------------------------------------------------------- /app/adzerk/api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/adzerk/api.py -------------------------------------------------------------------------------- /app/adzerk/transform.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/adzerk/transform.py -------------------------------------------------------------------------------- /app/adzerk/validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/adzerk/validation.py -------------------------------------------------------------------------------- /app/client.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/client.py -------------------------------------------------------------------------------- /app/conf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/__init__.py -------------------------------------------------------------------------------- /app/conf/adzerk_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/adzerk_cfg.py -------------------------------------------------------------------------------- /app/conf/domain_affinities_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/domain_affinities_cfg.py -------------------------------------------------------------------------------- /app/conf/geolocation_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/geolocation_cfg.py -------------------------------------------------------------------------------- /app/conf/s3_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/s3_cfg.py -------------------------------------------------------------------------------- /app/conf/sentry_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/sentry_cfg.py -------------------------------------------------------------------------------- /app/conf/spocs_cfg.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/conf/spocs_cfg.py -------------------------------------------------------------------------------- /app/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/config.py -------------------------------------------------------------------------------- /app/exceptions/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/exceptions/base_exception.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/exceptions/base_exception.py -------------------------------------------------------------------------------- /app/exceptions/invalid_content_type.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/exceptions/invalid_content_type.py -------------------------------------------------------------------------------- /app/exceptions/invalid_param.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/exceptions/invalid_param.py -------------------------------------------------------------------------------- /app/exceptions/missing_param.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/exceptions/missing_param.py -------------------------------------------------------------------------------- /app/geolocation/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/geolocation/factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/geolocation/factory.py -------------------------------------------------------------------------------- /app/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/main.py -------------------------------------------------------------------------------- /app/middleware/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/middleware/proxy_headers.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/middleware/proxy_headers.py -------------------------------------------------------------------------------- /app/provider/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/provider/geo_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/provider/geo_provider.py -------------------------------------------------------------------------------- /app/provider/sentry_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/provider/sentry_provider.py -------------------------------------------------------------------------------- /app/provider/session_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/provider/session_provider.py -------------------------------------------------------------------------------- /app/telemetry/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/telemetry/handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/telemetry/handler.py -------------------------------------------------------------------------------- /app/telemetry/requirements.txt: -------------------------------------------------------------------------------- 1 | google-cloud-logging 2 | -------------------------------------------------------------------------------- /app/validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/app/validation.py -------------------------------------------------------------------------------- /cloudformation/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/README.md -------------------------------------------------------------------------------- /cloudformation/proxy-service.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/proxy-service.yaml -------------------------------------------------------------------------------- /cloudformation/vpc/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/README.md -------------------------------------------------------------------------------- /cloudformation/vpc/nat.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/nat.yaml -------------------------------------------------------------------------------- /cloudformation/vpc/private-subnet.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/private-subnet.yaml -------------------------------------------------------------------------------- /cloudformation/vpc/public-subnet.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/public-subnet.yaml -------------------------------------------------------------------------------- /cloudformation/vpc/vpc.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/vpc.yaml -------------------------------------------------------------------------------- /cloudformation/vpc/vpc_parameters.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/cloudformation/vpc/vpc_parameters.json -------------------------------------------------------------------------------- /conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/conftest.py -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /gunicorn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/gunicorn.py -------------------------------------------------------------------------------- /images/app/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/images/app/Dockerfile -------------------------------------------------------------------------------- /images/nginx/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/images/nginx/Dockerfile -------------------------------------------------------------------------------- /images/nginx/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/images/nginx/nginx.conf -------------------------------------------------------------------------------- /images/s3/download.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/images/s3/download.sh -------------------------------------------------------------------------------- /openapi/openapi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/openapi/openapi.yml -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/README.md -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/api/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/api/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/api/test_api.py -------------------------------------------------------------------------------- /tests/fixtures/GeoIP2-City-Test.mmdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/fixtures/GeoIP2-City-Test.mmdb -------------------------------------------------------------------------------- /tests/fixtures/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/fixtures/mock_decision.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/fixtures/mock_decision.py -------------------------------------------------------------------------------- /tests/fixtures/mock_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/fixtures/mock_factory.py -------------------------------------------------------------------------------- /tests/fixtures/mock_placements.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/fixtures/mock_placements.py -------------------------------------------------------------------------------- /tests/fixtures/mock_spoc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/fixtures/mock_spoc.py -------------------------------------------------------------------------------- /tests/load/script.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/load/script.yml -------------------------------------------------------------------------------- /tests/load/serverless.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/load/serverless.yml -------------------------------------------------------------------------------- /tests/scripts/timer.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/scripts/timer.sh -------------------------------------------------------------------------------- /tests/scripts/wsgi_profiler_conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/scripts/wsgi_profiler_conf.py -------------------------------------------------------------------------------- /tests/unit/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/unit/test_adzerk_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_adzerk_api.py -------------------------------------------------------------------------------- /tests/unit/test_adzerk_transform.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_adzerk_transform.py -------------------------------------------------------------------------------- /tests/unit/test_adzerk_validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_adzerk_validation.py -------------------------------------------------------------------------------- /tests/unit/test_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_app.py -------------------------------------------------------------------------------- /tests/unit/test_app_validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_app_validation.py -------------------------------------------------------------------------------- /tests/unit/test_geolocation_factory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_geolocation_factory.py -------------------------------------------------------------------------------- /tests/unit/test_geolocation_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_geolocation_provider.py -------------------------------------------------------------------------------- /tests/unit/test_telemetry_handler.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Pocket/proxy-server/HEAD/tests/unit/test_telemetry_handler.py --------------------------------------------------------------------------------