├── .github └── workflows │ └── main.yml ├── .gitignore ├── .gitmodules ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── airflow.Dockerfile ├── airflow_requirements.txt ├── create_env.sh ├── dags ├── .airflowignore ├── __init__.py ├── destinations │ ├── __init__.py │ ├── cm360oci.py │ ├── dv360cm.py │ ├── fail.py │ ├── ga4mp.py │ ├── gads_customermatch.py │ ├── gads_ec4leads.py │ ├── gads_ec4web.py │ ├── gads_oca.py │ ├── gads_oci.py │ └── gads_ssi.py ├── errors.py ├── protocols │ ├── __init__.py │ ├── destination_proto.py │ └── source_proto.py ├── register_connections.py ├── schemas.py ├── sources │ ├── __init__.py │ ├── bigquery.py │ ├── gcs.py │ ├── local_file.py │ └── s3.py ├── tests │ ├── __init__.py │ ├── test_protocols.py │ ├── test_schemas.py │ └── test_utils.py ├── utils.py └── validations.py ├── docker-compose.yaml ├── drill.Dockerfile ├── installer ├── aws │ ├── README.MD │ ├── cloud-config.yaml │ ├── locals.tf │ ├── main.tf │ ├── variable.tf │ └── variables.tfvars └── gcp │ ├── README.MD │ ├── cloud-config.yaml │ ├── locals.tf │ ├── main.tf │ ├── sample-data.tf │ ├── variable.tf │ └── variables.tfvars ├── integration_tests ├── conftest.py ├── test_api.py ├── test_dags.py ├── test_drill.py └── test_requirements.txt ├── postgres.Dockerfile ├── postgres_init.sh ├── run_integration_tests.sh ├── run_tightlock.sh ├── sample_data ├── cm360_conversions_sample_data.csvh ├── dv360_sample_data.csvh ├── ga4_app_sample_data.csvh ├── ga4_web_sample_data.csvh ├── gads_customermatch_sample_data.csvh ├── gads_ec4l_sample_data.csvh ├── gads_ec4w_sample_data.csvh ├── gads_oca_sample_data.csvh ├── gads_oci_sample_data.csvh ├── gads_ssi_sample_data.csvh └── integration_test.csvh ├── tightlock_api ├── .dockerignore ├── Dockerfile ├── app │ ├── __init__.py │ ├── alembic.ini │ ├── base_config.json │ ├── clients.py │ ├── db.py │ ├── main.py │ ├── migrations │ │ ├── README │ │ ├── __init__.py │ │ ├── env.py │ │ ├── script.py.mako │ │ └── versions │ │ │ └── b63959034284_init.py │ ├── models.py │ ├── prestart.sh │ ├── schemas_sample.json │ └── security.py └── requirements.txt └── update_tightlock.sh /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/.gitmodules -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/README.md -------------------------------------------------------------------------------- /airflow.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/airflow.Dockerfile -------------------------------------------------------------------------------- /airflow_requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/airflow_requirements.txt -------------------------------------------------------------------------------- /create_env.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/create_env.sh -------------------------------------------------------------------------------- /dags/.airflowignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/.airflowignore -------------------------------------------------------------------------------- /dags/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/__init__.py -------------------------------------------------------------------------------- /dags/destinations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/__init__.py -------------------------------------------------------------------------------- /dags/destinations/cm360oci.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/cm360oci.py -------------------------------------------------------------------------------- /dags/destinations/dv360cm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/dv360cm.py -------------------------------------------------------------------------------- /dags/destinations/fail.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/fail.py -------------------------------------------------------------------------------- /dags/destinations/ga4mp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/ga4mp.py -------------------------------------------------------------------------------- /dags/destinations/gads_customermatch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_customermatch.py -------------------------------------------------------------------------------- /dags/destinations/gads_ec4leads.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_ec4leads.py -------------------------------------------------------------------------------- /dags/destinations/gads_ec4web.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_ec4web.py -------------------------------------------------------------------------------- /dags/destinations/gads_oca.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_oca.py -------------------------------------------------------------------------------- /dags/destinations/gads_oci.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_oci.py -------------------------------------------------------------------------------- /dags/destinations/gads_ssi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/destinations/gads_ssi.py -------------------------------------------------------------------------------- /dags/errors.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/errors.py -------------------------------------------------------------------------------- /dags/protocols/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/protocols/__init__.py -------------------------------------------------------------------------------- /dags/protocols/destination_proto.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/protocols/destination_proto.py -------------------------------------------------------------------------------- /dags/protocols/source_proto.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/protocols/source_proto.py -------------------------------------------------------------------------------- /dags/register_connections.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/register_connections.py -------------------------------------------------------------------------------- /dags/schemas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/schemas.py -------------------------------------------------------------------------------- /dags/sources/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/sources/__init__.py -------------------------------------------------------------------------------- /dags/sources/bigquery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/sources/bigquery.py -------------------------------------------------------------------------------- /dags/sources/gcs.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/sources/gcs.py -------------------------------------------------------------------------------- /dags/sources/local_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/sources/local_file.py -------------------------------------------------------------------------------- /dags/sources/s3.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/sources/s3.py -------------------------------------------------------------------------------- /dags/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/tests/__init__.py -------------------------------------------------------------------------------- /dags/tests/test_protocols.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/tests/test_protocols.py -------------------------------------------------------------------------------- /dags/tests/test_schemas.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/tests/test_schemas.py -------------------------------------------------------------------------------- /dags/tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/tests/test_utils.py -------------------------------------------------------------------------------- /dags/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/utils.py -------------------------------------------------------------------------------- /dags/validations.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/dags/validations.py -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/docker-compose.yaml -------------------------------------------------------------------------------- /drill.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/drill.Dockerfile -------------------------------------------------------------------------------- /installer/aws/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/README.MD -------------------------------------------------------------------------------- /installer/aws/cloud-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/cloud-config.yaml -------------------------------------------------------------------------------- /installer/aws/locals.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/locals.tf -------------------------------------------------------------------------------- /installer/aws/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/main.tf -------------------------------------------------------------------------------- /installer/aws/variable.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/variable.tf -------------------------------------------------------------------------------- /installer/aws/variables.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/aws/variables.tfvars -------------------------------------------------------------------------------- /installer/gcp/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/README.MD -------------------------------------------------------------------------------- /installer/gcp/cloud-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/cloud-config.yaml -------------------------------------------------------------------------------- /installer/gcp/locals.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/locals.tf -------------------------------------------------------------------------------- /installer/gcp/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/main.tf -------------------------------------------------------------------------------- /installer/gcp/sample-data.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/sample-data.tf -------------------------------------------------------------------------------- /installer/gcp/variable.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/variable.tf -------------------------------------------------------------------------------- /installer/gcp/variables.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/installer/gcp/variables.tfvars -------------------------------------------------------------------------------- /integration_tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/integration_tests/conftest.py -------------------------------------------------------------------------------- /integration_tests/test_api.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/integration_tests/test_api.py -------------------------------------------------------------------------------- /integration_tests/test_dags.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/integration_tests/test_dags.py -------------------------------------------------------------------------------- /integration_tests/test_drill.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/integration_tests/test_drill.py -------------------------------------------------------------------------------- /integration_tests/test_requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/integration_tests/test_requirements.txt -------------------------------------------------------------------------------- /postgres.Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/postgres.Dockerfile -------------------------------------------------------------------------------- /postgres_init.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/postgres_init.sh -------------------------------------------------------------------------------- /run_integration_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/run_integration_tests.sh -------------------------------------------------------------------------------- /run_tightlock.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/run_tightlock.sh -------------------------------------------------------------------------------- /sample_data/cm360_conversions_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/cm360_conversions_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/dv360_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/dv360_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/ga4_app_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/ga4_app_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/ga4_web_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/ga4_web_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_customermatch_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_customermatch_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_ec4l_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_ec4l_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_ec4w_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_ec4w_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_oca_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_oca_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_oci_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_oci_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/gads_ssi_sample_data.csvh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/sample_data/gads_ssi_sample_data.csvh -------------------------------------------------------------------------------- /sample_data/integration_test.csvh: -------------------------------------------------------------------------------- 1 | id,value 2 | 1,10 3 | 2,20 4 | 3,30 5 | -------------------------------------------------------------------------------- /tightlock_api/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/.dockerignore -------------------------------------------------------------------------------- /tightlock_api/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/Dockerfile -------------------------------------------------------------------------------- /tightlock_api/app/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/__init__.py -------------------------------------------------------------------------------- /tightlock_api/app/alembic.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/alembic.ini -------------------------------------------------------------------------------- /tightlock_api/app/base_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/base_config.json -------------------------------------------------------------------------------- /tightlock_api/app/clients.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/clients.py -------------------------------------------------------------------------------- /tightlock_api/app/db.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/db.py -------------------------------------------------------------------------------- /tightlock_api/app/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/main.py -------------------------------------------------------------------------------- /tightlock_api/app/migrations/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/migrations/README -------------------------------------------------------------------------------- /tightlock_api/app/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/migrations/__init__.py -------------------------------------------------------------------------------- /tightlock_api/app/migrations/env.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/migrations/env.py -------------------------------------------------------------------------------- /tightlock_api/app/migrations/script.py.mako: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/migrations/script.py.mako -------------------------------------------------------------------------------- /tightlock_api/app/migrations/versions/b63959034284_init.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/migrations/versions/b63959034284_init.py -------------------------------------------------------------------------------- /tightlock_api/app/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/models.py -------------------------------------------------------------------------------- /tightlock_api/app/prestart.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/prestart.sh -------------------------------------------------------------------------------- /tightlock_api/app/schemas_sample.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/schemas_sample.json -------------------------------------------------------------------------------- /tightlock_api/app/security.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/app/security.py -------------------------------------------------------------------------------- /tightlock_api/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/tightlock_api/requirements.txt -------------------------------------------------------------------------------- /update_tightlock.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/google-marketing-solutions/Tightlock/HEAD/update_tightlock.sh --------------------------------------------------------------------------------