Skip to content

Defines GCP infrastructure, apps, and services for sunlight sensor project

License

Notifications You must be signed in to change notification settings

kden/sunlight_sensor_gcp

Repository files navigation

logo Sunlight Sensor GCP Components

This project contains the Google Cloud Platform components of the Sunlight Sensor project, which is described in more detail in my portfolio.

Technologies used

Top-level commands

To test all of the Python-based subprojects, like rest_sensor_api_to_pubsub pytest from the root directory:

pytest

GitHub Configuration

In order to configure your GitHub actions, you will need to create some GitHub Actions secrets in your repo.

GitHub Secret NameTerraform Output or SourcePurpose
GCP_PROJECT_IDgcp_project_id in terraform.tfvarsThe Google Cloud Project ID.
GCP_SERVICE_ACCOUNT_EMAIL_BQ_TO_FS_SENSORS_RUNTIMEbq_to_firestore_sensors_sa_emailThe runtime service account for the bq-to-fs-sensor-data-exporter function.
GCP_SERVICE_ACCOUNT_EMAIL_BQ_TO_FS_WEATHER_RUNTIMEbq_to_fs_weather_sa_emailThe runtime service account for the bq-to-fs-weather-exporter function.
GCP_SERVICE_ACCOUNT_EMAIL_FUNCTIONSfunction_deployer_emailThe email of the primary service account that GitHub Actions uses to deploy all functions.
GCP_SERVICE_ACCOUNT_EMAIL_OPEN_METEO_RUNTIMEopen_meteo_runtime_sa_emailThe runtime service account for the daily-open-meteo-importer function.
GCP_SERVICE_ACCOUNT_EMAIL_RUNTIMEfunction_runtime_emailA general-purpose or legacy runtime service account. Newer functions use dedicated SAs.
GCP_SERVICE_ACCOUNT_EMAIL_SENSOR_PROXY_RUNTIMErest_proxy_runtime_sa_emailThe runtime service account for the rest-to-pubsub-proxy-function.
GCP_SERVICE_ACCOUNT_EMAIL_TEST_PATTERN_RUNTIMEtest_pattern_runtime_sa_emailThe runtime service account for the daily-test-pattern-generator function.
GCP_SERVICE_ACCOUNT_EMAIL_WEBAPPwebapp_deployer_emailThe service account used by the Next.js web application's backend (defined in webapp-specific Terraform).
GCP_WORKLOAD_IDENTITY_PROVIDERworkload_identity_providerThe full resource name of the Workload Identity Provider for OIDC.
REACT_APP_FIREBASE_CONFIGfirebase_web_app_configThe JSON configuration object for connecting the frontend React app to Firebase (from Firebase Console or Terraform).
SENSOR_API_BEARER_TOKENManual EntryThe secret token used by sensors and the test pattern generator to authenticate with the REST API proxy.
SENSOR_API_DOMAIN_NAMEsensor_target_api_domain_name in terraform.tfvarsThe custom domain for the sensor API (e.g., sensors.example.com).

Licensing

Licensing information is in the LICENSE and THIRD_PARTY_LICENSES file.

AI

This project was developed with assistance from ChatGPT 4o (2025), Google Gemini 2.5 Pro (2025), and Claude Sonnet 4 and 4.5 (2025).

About

Defines GCP infrastructure, apps, and services for sunlight sensor project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published