diff --git a/k8s/openclaw/calendar_sa.json.secret b/k8s/openclaw/calendar_sa.json.secret new file mode 100755 index 0000000..013a480 Binary files /dev/null and b/k8s/openclaw/calendar_sa.json.secret differ diff --git a/k8s/openclaw/openclaw-instance.secret.yaml b/k8s/openclaw/openclaw-instance.secret.yaml index 572f247..f2890d6 100644 Binary files a/k8s/openclaw/openclaw-instance.secret.yaml and b/k8s/openclaw/openclaw-instance.secret.yaml differ diff --git a/k8s/openclaw/openclaw.secret.yaml b/k8s/openclaw/openclaw.secret.yaml index 1d9ee21..0f6b889 100644 Binary files a/k8s/openclaw/openclaw.secret.yaml and b/k8s/openclaw/openclaw.secret.yaml differ diff --git a/terraform/gcp_calendar.tf b/terraform/gcp_calendar.tf new file mode 100644 index 0000000..fb2bb36 --- /dev/null +++ b/terraform/gcp_calendar.tf @@ -0,0 +1,40 @@ +locals { + calendar_project_id = "octobot-486812" +} + +resource "google_project_service" "calendar_api" { + project = local.calendar_project_id + service = "calendar-json.googleapis.com" + disable_on_destroy = false +} + +resource "google_project_organization_policy" "allow_calendar_key_creation" { + project = local.calendar_project_id + constraint = "iam.disableServiceAccountKeyCreation" + + boolean_policy { + enforced = false + } +} + +resource "google_service_account" "openclaw_calendar_sa" { + project = local.calendar_project_id + account_id = "openclaw-calendar" + display_name = "OpenClaw Google Calendar Service Account" + depends_on = [google_project_service.calendar_api] +} + +resource "google_service_account_key" "openclaw_calendar_sa_key" { + service_account_id = google_service_account.openclaw_calendar_sa.name + depends_on = [google_project_organization_policy.allow_calendar_key_creation] +} + +resource "local_file" "openclaw_calendar_sa_key_file" { + content = base64decode(google_service_account_key.openclaw_calendar_sa_key.private_key) + filename = "${path.module}/../k8s/openclaw/calendar_sa.json.secret" +} + +output "openclaw_calendar_sa_email" { + value = google_service_account.openclaw_calendar_sa.email + description = "The email address of the Google Calendar Service Account. Share your Google Calendars with this email address and grant it 'Make changes to events' access." +} diff --git a/terraform/terraform.tfstate b/terraform/terraform.tfstate index 0dd18e9..3739c43 100644 --- a/terraform/terraform.tfstate +++ b/terraform/terraform.tfstate @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.14.3", - "serial": 386, + "serial": 394, "lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e", "outputs": { "coder_oauth_client_secret": { @@ -34,6 +34,10 @@ "type": "string", "sensitive": true }, + "openclaw_calendar_sa_email": { + "value": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "type": "string" + }, "velero_backup_sa_email": { "value": "velero-backup-sa@velero-backup-dc8c8f74.iam.gserviceaccount.com", "type": "string" @@ -2734,6 +2738,36 @@ } ] }, + { + "mode": "managed", + "type": "google_project_organization_policy", + "name": "allow_calendar_key_creation", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "boolean_policy": [ + { + "enforced": false + } + ], + "constraint": "constraints/iam.disableServiceAccountKeyCreation", + "etag": "COa6ptUGENjDs60C", + "id": "octobot-486812:iam.disableServiceAccountKeyCreation", + "list_policy": [], + "project": "octobot-486812", + "restore_policy": [], + "timeouts": null, + "update_time": "2026-09-15T19:32:54.632087Z", + "version": 0 + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoyNDAwMDAwMDAwMDAsImRlbGV0ZSI6MjQwMDAwMDAwMDAwLCJyZWFkIjoyNDAwMDAwMDAwMDAsInVwZGF0ZSI6MjQwMDAwMDAwMDAwfX0=" + } + ] + }, { "mode": "managed", "type": "google_project_organization_policy", @@ -2768,6 +2802,28 @@ } ] }, + { + "mode": "managed", + "type": "google_project_service", + "name": "calendar_api", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "octobot-486812/calendar-json.googleapis.com", + "project": "octobot-486812", + "service": "calendar-json.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, { "mode": "managed", "type": "google_project_service", @@ -2816,6 +2872,37 @@ } ] }, + { + "mode": "managed", + "type": "google_service_account", + "name": "openclaw_calendar_sa", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "openclaw-calendar", + "create_ignore_already_exists": null, + "description": "", + "disabled": false, + "display_name": "OpenClaw Google Calendar Service Account", + "email": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "id": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "member": "serviceAccount:openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "name": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "project": "octobot-486812", + "timeouts": null, + "unique_id": "105318395648380508185" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==", + "dependencies": [ + "google_project_service.calendar_api" + ] + } + ] + }, { "mode": "managed", "type": "google_service_account", @@ -2849,6 +2936,46 @@ } ] }, + { + "mode": "managed", + "type": "google_service_account_key", + "name": "openclaw_calendar_sa_key", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com/keys/8c4c1f09033546fffe2fe9b85a54a0206bd8d57c", + "keepers": null, + "key_algorithm": "KEY_ALG_RSA_2048", + "name": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com/keys/8c4c1f09033546fffe2fe9b85a54a0206bd8d57c", + "private_key": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAib2N0b2JvdC00ODY4MTIiLAogICJwcml2YXRlX2tleV9pZCI6ICI4YzRjMWYwOTAzMzU0NmZmZmUyZmU5Yjg1YTU0YTAyMDZiZDhkNTdjIiwKICAicHJpdmF0ZV9rZXkiOiAiLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG5NSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFTQ0JLZ3dnZ1NrQWdFQUFvSUJBUURkN2dzVytPT2o1dzdhXG53dXI3akRFV0QyelJkWXpzT1dXVjNzZDVQdkttOGVaVmlJWGhGY0ZseU5PMzdNMXVKSHI0SERJTDFHdkxTc2RZXG54dlQySXNCQys5d1doOTdhaUVab1l0TDE5K0g2ZVFmUloycGlnWjJIamJPdlYrZmtCSDYvUzNPSGh5RW1DUjl3XG5tQXgzTTFOTFBvWFJLQmRJWTVJWE8rclNIZC9ZYmgyQnBERjl5THc3Y0RhL09KeWZGRThIbGtSZkdUbmJIdWlCXG4rZ3dra3B3TTY5Q3FkM1p4VFR1bFEvck1xazBSZ09iZTluaEQrZlZ1MWl0Mms2ejVDV1ViNWpJazZvVWpjNENVXG43UFZZRWg1S2owVUJPSU1qcXZ3bHArZjdJV3dSWnpuMitvWHBodTVYR3JHeXRCVTF3Zm42UjRtSERaV1pKNmFmXG5vWTliMlhUbEFnTUJBQUVDZ2dFQUFJM0hpN3ZlUlY3OHNjLzN0bVFXQVVYcjlsWHltSHlha0FoeDd5SVNpTFd4XG5CVEtITUNVRGxsOTJWUEJLQ1BPWG85TWE4eitER2dVSTk3TS9tSEFJQUY0NFpFUUFsWDBUSktyczhXdDdRR0w2XG5zbE1uZXlydE5hUVVrN0JmQkp0OGRIQ1FtS1dVL2NNTDFBUDcrcVZwUXpUaEYvM2lnR3NOM0NoMW50Myt2ZnlMXG5qWFJPTGlka0FMZ250L1ZxS0lHalBKQ2daNFhaVDY2VFBFOG1pVWkrYzUyWEhwK250Y0JuMmlIMGYzU2YxSHJjXG5TL01lYllZUmZTd0Era1hyZzVwR3VRMEVoU1pscmNqejhXWGFEeWVsNnh3cGh5aDJ2ZTJnNzBld2NGazFHbGR5XG55OVhFd0lZdGpobG5IajRpWVRwYWNxWXlORXNyM3pITzNVZ1Bzc3hXUndLQmdRRHpKdVBTcHlEQm1uMzYydFhoXG5kanhBSDNZcy9kMlhqM1A5cXBmVFN6M2VjMHMySkc1QTVDY3dFZ1A0eklsRE1yclZOWFVnYXZBeEhaS0VXMWc4XG5vdHBrbFJkZUI4dEx3YWtkUFA2M2xCZW0xdmdVak56WlZnQ0JTSjI2bFliNDJoZXp4VmxuUExVb0JNNjUvMW9oXG56TEpBbithSVN1MElVWVN1QkI2ZGVnOFhyd0tCZ1FEcHFCVklLeElzZUt3VVNKUlc0WFZKdkVBZHRJcmR6WlFXXG52U05ucjdYVVo2aWU5WVkrOEtseEwweHdDOTBpaHpFVkRYR0w2YlFRM1V0NEF5RmlzcmNMdDQxRjkvdUhFRG56XG5Jd2dzVURIaDcwV0tjU3B3UjdOWFEvZ0ZLWHUwYnpWTGRpMWdHN3E2OThNUytpMVZwS21FdWJZRldib1ovazdXXG5aMDFpTk90TnF3S0JnUUM4clFLL3BSd1AzdmUrdml5VTVSQmZtWW96NDFJZGx4MGtTMG5BbFhRT3QxdzNTUkdjXG5uTzJqcVhjWGltOUFpNDdhZnI3Q1J2ald3K0c3ZnIzN1gwc2tIV1NpZkYzT0RScFRLODlqV0RENkwza1ZTVERlXG5ISlFMdmZOV28weTJzVlVQRkNZSnE5dk9qOXh5QzZrKzdQMnNrK2RvL3Vyck40WkRHY00vNDBUdTFRS0JnUUNDXG5UWjR3dFBSWm9LSTJYWk44TUJkOG0yTVdMYzBUak1YOU9GVTZTWjhaYVFWOFFHZ3hTWHoxQmUrV3ZNY0JybXNNXG4xb1p3QkZESzV0NWplenR2RTBOSllYK0RlWnZuNG9DdXV1YWY3OGtodXBJSmRycTRDd1JVc2k3cWtndk93QVgwXG5vMThDcmZRZ3VITXRiaDlDRjZZQndwOWp0SG80Ykw0Q2kzRjRSeExDS1FLQmdBek5zVzZjQjQyWG5HbFVlbjd3XG5CaFh6dTNOL2doRUVQZ3FuUjUydmttR2NGYzl3Q1cxNnEzaEJnZk40OVdPQmh0MnUzSlRjYWZ6emhFazE5WFJiXG5QZDlTalkwZlBNUnBiVUJkKzJkQWdCWXpNa3pyUmJaZlYrc0daaFNSQ0JHS2UvUVgwcitvM0xmeUF1VHo2c2Z3XG5uaEVvYU1UdXJxT0tXKzRMcmFPbTI3YXpcbi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS1cbiIsCiAgImNsaWVudF9lbWFpbCI6ICJvcGVuY2xhdy1jYWxlbmRhckBvY3RvYm90LTQ4NjgxMi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCiAgImNsaWVudF9pZCI6ICIxMDUzMTgzOTU2NDgzODA1MDgxODUiLAogICJhdXRoX3VyaSI6ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvYXV0aCIsCiAgInRva2VuX3VyaSI6ICJodHRwczovL29hdXRoMi5nb29nbGVhcGlzLmNvbS90b2tlbiIsCiAgImF1dGhfcHJvdmlkZXJfeDUwOV9jZXJ0X3VybCI6ICJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjEvY2VydHMiLAogICJjbGllbnRfeDUwOV9jZXJ0X3VybCI6ICJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9yb2JvdC92MS9tZXRhZGF0YS94NTA5L29wZW5jbGF3LWNhbGVuZGFyJTQwb2N0b2JvdC00ODY4MTIuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLAogICJ1bml2ZXJzZV9kb21haW4iOiAiZ29vZ2xlYXBpcy5jb20iCn0K", + "private_key_type": "TYPE_GOOGLE_CREDENTIALS_FILE", + "public_key": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvVENDQWVXZ0F3SUJBZ0lKQU0vWjRmdFpSTFVJTUEwR0NTcUdTSWIzRFFFQkJRVUFNQ0F4SGpBY0JnTlYKQkFNTUZURXdOVE14T0RNNU5UWTBPRE00TURVd09ERTROVEFnRncweU5qQTVNVFV4T1RNME16QmFHQTg1T1RrNQpNVEl6TVRJek5UazFPVm93SURFZU1Cd0dBMVVFQXd3Vk1UQTFNekU0TXprMU5qUTRNemd3TlRBNE1UZzFNSUlCCklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEzZTRMRnZqam8rY08yc0xxKzR3eEZnOXMKMFhXTTdEbGxsZDdIZVQ3eXB2SG1WWWlGNFJYQlpjalR0K3pOYmlSNitCd3lDOVJyeTBySFdNYjA5aUxBUXZ2YwpGb2ZlMm9oR2FHTFM5ZmZoK25rSDBXZHFZb0dkaDQyenIxZm41QVIrdjB0emg0Y2hKZ2tmY0pnTWR6TlRTejZGCjBTZ1hTR09TRnp2cTBoM2YyRzRkZ2FReGZjaThPM0EydnppY254UlBCNVpFWHhrNTJ4N29nZm9NSkpLY0RPdlEKcW5kMmNVMDdwVVA2ektwTkVZRG0zdlo0US9uMWJ0WXJkcE9zK1FsbEcrWXlKT3FGSTNPQWxPejFXQkllU285RgpBVGlESTZyOEphZm4reUZzRVdjNTl2cUY2WWJ1VnhxeHNyUVZOY0g1K2tlSmh3MlZtU2VtbjZHUFc5bDA1UUlECkFRQUJvemd3TmpBTUJnTlZIUk1CQWY4RUFqQUFNQTRHQTFVZER3RUIvd1FFQXdJSGdEQVdCZ05WSFNVQkFmOEUKRERBS0JnZ3JCZ0VGQlFjREFqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFEckRLT3VEZG03ZWU1dy9SMEp3NQp4ekptT0ZoYmpkWUJ3MklucXI3ZlVGMHVsMk56SlU4TmVtOFltT1FxcytBYUhKMVJlMHM2YllNak95Z3VCbFY3Ckxsdnhra1IvMWUxekFQRjhsRDRBYTR3N2luM3kxb3k1NW9sbFpTWjBtTDgwUERObGxEUGRkRkMveHpuOGYxRmMKUnB5MjhEempUbDdIVEJnbXMxTEhSWms1TE1PTVp1UUhXcGpXWkJlczMyZUZHNGNJMlJQNk01OUpCNlFVdWJjZApwa2JWVDJGOUhwbDhoN01pVjFYTUQwWmRIZjR6aUFPcGxCSzBISWJkanVyNEMzR0t1aGdrS0pGK3p5cWdoR3FwCnVPWkVuRDBjQ0Q0ZCthNFRmZUtyb2xPSklmKytDRUxEWWF6NEpuQlloaDBSakZnZTduM21YK0VrRzNrQ1dkVUIKYVE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==", + "public_key_data": null, + "public_key_type": "TYPE_X509_PEM_FILE", + "service_account_id": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "valid_after": "2026-09-15T19:34:30Z", + "valid_before": "9999-12-31T23:59:59Z" + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "private_key" + } + ] + ], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_project_organization_policy.allow_calendar_key_creation", + "google_project_service.calendar_api", + "google_service_account.openclaw_calendar_sa" + ] + } + ] + }, { "mode": "managed", "type": "google_service_account_key", @@ -2941,6 +3068,54 @@ } ] }, + { + "mode": "managed", + "type": "local_file", + "name": "openclaw_calendar_sa_key_file", + "provider": "provider[\"registry.terraform.io/hashicorp/local\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "content": "{\n \"type\": \"service_account\",\n \"project_id\": \"octobot-486812\",\n \"private_key_id\": \"8c4c1f09033546fffe2fe9b85a54a0206bd8d57c\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDd7gsW+OOj5w7a\\nwur7jDEWD2zRdYzsOWWV3sd5PvKm8eZViIXhFcFlyNO37M1uJHr4HDIL1GvLSsdY\\nxvT2IsBC+9wWh97aiEZoYtL19+H6eQfRZ2pigZ2HjbOvV+fkBH6/S3OHhyEmCR9w\\nmAx3M1NLPoXRKBdIY5IXO+rSHd/Ybh2BpDF9yLw7cDa/OJyfFE8HlkRfGTnbHuiB\\n+gwkkpwM69Cqd3ZxTTulQ/rMqk0RgObe9nhD+fVu1it2k6z5CWUb5jIk6oUjc4CU\\n7PVYEh5Kj0UBOIMjqvwlp+f7IWwRZzn2+oXphu5XGrGytBU1wfn6R4mHDZWZJ6af\\noY9b2XTlAgMBAAECggEAAI3Hi7veRV78sc/3tmQWAUXr9lXymHyakAhx7yISiLWx\\nBTKHMCUDll92VPBKCPOXo9Ma8z+DGgUI97M/mHAIAF44ZEQAlX0TJKrs8Wt7QGL6\\nslMneyrtNaQUk7BfBJt8dHCQmKWU/cML1AP7+qVpQzThF/3igGsN3Ch1nt3+vfyL\\njXROLidkALgnt/VqKIGjPJCgZ4XZT66TPE8miUi+c52XHp+ntcBn2iH0f3Sf1Hrc\\nS/MebYYRfSwA+kXrg5pGuQ0EhSZlrcjz8WXaDyel6xwphyh2ve2g70ewcFk1Gldy\\ny9XEwIYtjhlnHj4iYTpacqYyNEsr3zHO3UgPssxWRwKBgQDzJuPSpyDBmn362tXh\\ndjxAH3Ys/d2Xj3P9qpfTSz3ec0s2JG5A5CcwEgP4zIlDMrrVNXUgavAxHZKEW1g8\\notpklRdeB8tLwakdPP63lBem1vgUjNzZVgCBSJ26lYb42hezxVlnPLUoBM65/1oh\\nzLJAn+aISu0IUYSuBB6deg8XrwKBgQDpqBVIKxIseKwUSJRW4XVJvEAdtIrdzZQW\\nvSNnr7XUZ6ie9YY+8KlxL0xwC90ihzEVDXGL6bQQ3Ut4AyFisrcLt41F9/uHEDnz\\nIwgsUDHh70WKcSpwR7NXQ/gFKXu0bzVLdi1gG7q698MS+i1VpKmEubYFWboZ/k7W\\nZ01iNOtNqwKBgQC8rQK/pRwP3ve+viyU5RBfmYoz41Idlx0kS0nAlXQOt1w3SRGc\\nnO2jqXcXim9Ai47afr7CRvjWw+G7fr37X0skHWSifF3ODRpTK89jWDD6L3kVSTDe\\nHJQLvfNWo0y2sVUPFCYJq9vOj9xyC6k+7P2sk+do/urrN4ZDGcM/40Tu1QKBgQCC\\nTZ4wtPRZoKI2XZN8MBd8m2MWLc0TjMX9OFU6SZ8ZaQV8QGgxSXz1Be+WvMcBrmsM\\n1oZwBFDK5t5jeztvE0NJYX+DeZvn4oCuuuaf78khupIJdrq4CwRUsi7qkgvOwAX0\\no18CrfQguHMtbh9CF6YBwp9jtHo4bL4Ci3F4RxLCKQKBgAzNsW6cB42XnGlUen7w\\nBhXzu3N/ghEEPgqnR52vkmGcFc9wCW16q3hBgfN49WOBht2u3JTcafzzhEk19XRb\\nPd9SjY0fPMRpbUBd+2dAgBYzMkzrRbZfV+sGZhSRCBGKe/QX0r+o3LfyAuTz6sfw\\nnhEoaMTurqOKW+4LraOm27az\\n-----END PRIVATE KEY-----\\n\",\n \"client_email\": \"openclaw-calendar@octobot-486812.iam.gserviceaccount.com\",\n \"client_id\": \"105318395648380508185\",\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"token_uri\": \"https://oauth2.googleapis.com/token\",\n \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\n \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/openclaw-calendar%40octobot-486812.iam.gserviceaccount.com\",\n \"universe_domain\": \"googleapis.com\"\n}\n", + "content_base64": null, + "content_base64sha256": "1jrhzIn0pbhdcVAP1SpuayMU1K12I/7z10zXyKihk8w=", + "content_base64sha512": "JBxoJmS3e8QQdWHyms9ABX+rnKMsy/6AQg84DQXX+A9j33hhJ3gC0RTYfOcwk7D3HFFWWlJPEg++fK/nQkWWHA==", + "content_md5": "f18cfc72834e50c7dacb4f879f63a5a2", + "content_sha1": "e7e89bd3ce694c7d7eadb0dab89db8d84014dc1d", + "content_sha256": "d63ae1cc89f4a5b85d71500fd52a6e6b2314d4ad7623fef3d74cd7c8a8a193cc", + "content_sha512": "241c682664b77bc4107561f29acf40057fab9ca32ccbfe80420f380d05d7f80f63df7861277802d114d87ce73093b0f71c51565a524f120fbe7cafe74245961c", + "directory_permission": "0777", + "file_permission": "0777", + "filename": "./../k8s/openclaw/calendar_sa.json.secret", + "id": "e7e89bd3ce694c7d7eadb0dab89db8d84014dc1d", + "sensitive_content": null, + "source": null + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "content" + } + ], + [ + { + "type": "get_attr", + "value": "sensitive_content" + } + ] + ], + "identity_schema_version": 0, + "dependencies": [ + "google_project_organization_policy.allow_calendar_key_creation", + "google_project_service.calendar_api", + "google_service_account.openclaw_calendar_sa", + "google_service_account_key.openclaw_calendar_sa_key" + ] + } + ] + }, { "mode": "managed", "type": "ovh_domain_zone_record", diff --git a/terraform/terraform.tfstate.backup b/terraform/terraform.tfstate.backup index 89643d9..15a548c 100644 --- a/terraform/terraform.tfstate.backup +++ b/terraform/terraform.tfstate.backup @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.14.3", - "serial": 384, + "serial": 391, "lineage": "8aff5d23-05f6-10eb-0ae6-1084c787677e", "outputs": { "coder_oauth_client_secret": { @@ -34,6 +34,10 @@ "type": "string", "sensitive": true }, + "openclaw_calendar_sa_email": { + "value": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "type": "string" + }, "velero_backup_sa_email": { "value": "velero-backup-sa@velero-backup-dc8c8f74.iam.gserviceaccount.com", "type": "string" @@ -2550,6 +2554,30 @@ } ] }, + { + "mode": "managed", + "type": "authentik_stage_user_login", + "name": "default_source_authentication_login", + "provider": "provider[\"registry.terraform.io/goauthentik/authentik\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "geoip_binding": "no_binding", + "id": "7ff5a23d-6f78-4539-b40f-d7fb24af0ae7", + "name": "default-source-authentication-login", + "network_binding": "no_binding", + "remember_device": "days=30", + "remember_me_offset": "seconds=0", + "session_duration": "days=30", + "terminate_other_sessions": false + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==" + } + ] + }, { "mode": "managed", "type": "authentik_stage_user_login", @@ -2710,6 +2738,36 @@ } ] }, + { + "mode": "managed", + "type": "google_project_organization_policy", + "name": "allow_calendar_key_creation", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "boolean_policy": [ + { + "enforced": false + } + ], + "constraint": "constraints/iam.disableServiceAccountKeyCreation", + "etag": "COa6ptUGENjDs60C", + "id": "octobot-486812:iam.disableServiceAccountKeyCreation", + "list_policy": [], + "project": "octobot-486812", + "restore_policy": [], + "timeouts": null, + "update_time": "2026-09-15T19:32:54.632087Z", + "version": 0 + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoyNDAwMDAwMDAwMDAsImRlbGV0ZSI6MjQwMDAwMDAwMDAwLCJyZWFkIjoyNDAwMDAwMDAwMDAsInVwZGF0ZSI6MjQwMDAwMDAwMDAwfX0=" + } + ] + }, { "mode": "managed", "type": "google_project_organization_policy", @@ -2744,6 +2802,28 @@ } ] }, + { + "mode": "managed", + "type": "google_project_service", + "name": "calendar_api", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "octobot-486812/calendar-json.googleapis.com", + "project": "octobot-486812", + "service": "calendar-json.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, { "mode": "managed", "type": "google_project_service", @@ -2792,6 +2872,37 @@ } ] }, + { + "mode": "managed", + "type": "google_service_account", + "name": "openclaw_calendar_sa", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "openclaw-calendar", + "create_ignore_already_exists": null, + "description": "", + "disabled": false, + "display_name": "OpenClaw Google Calendar Service Account", + "email": "openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "id": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "member": "serviceAccount:openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "name": "projects/octobot-486812/serviceAccounts/openclaw-calendar@octobot-486812.iam.gserviceaccount.com", + "project": "octobot-486812", + "timeouts": null, + "unique_id": "105318395648380508185" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==", + "dependencies": [ + "google_project_service.calendar_api" + ] + } + ] + }, { "mode": "managed", "type": "google_service_account",