From 5486b9d4385569927736476717412e1bf9891b60 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Thu, 11 Jun 2026 18:13:01 +0000 Subject: [PATCH] tripit: wire calendar-conflict column to Nextcloud CalDAV (#19) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CALENDAR_CONFLICT_PROVIDER=nextcloud + CalDAV base/user on the deployment, and the read-only app-password via tripit-secrets (seeded in Vault secret/tripit). Lets the planning workspace's calendar_check column flag date clashes against the owner's Nextcloud calendar. Same image-first hold-order as the fare scrape — pushed only after the #19 image is live. Co-Authored-By: Claude Opus 4.8 --- stacks/tripit/main.tf | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/stacks/tripit/main.tf b/stacks/tripit/main.tf index 509a4eb3..a6f18f92 100644 --- a/stacks/tripit/main.tf +++ b/stacks/tripit/main.tf @@ -88,6 +88,14 @@ locals { # keep serving), so the env landed AFTER that image rolled out. FARE_PROVIDER = "playwright" FARE_CDP_URL = "http://chrome-service.chrome-service.svc.cluster.local:9222" + # Calendar-conflict column (tripit issue #19): read the owner's Nextcloud + # calendar over CalDAV to flag date clashes on a planning Option. Base + + # user are non-secret; the app-password arrives via tripit-secrets. Same + # image-first hold-order as FARE_PROVIDER — `nextcloud` mode only exists in + # images >= the #19 slice (older images crash-loop on the unknown enum). + CALENDAR_CONFLICT_PROVIDER = "nextcloud" + NEXTCLOUD_CALDAV_BASE = "https://nextcloud.viktorbarzin.me/remote.php/dav" + NEXTCLOUD_CALDAV_USER = "admin" } } @@ -205,6 +213,11 @@ resource "kubernetes_manifest" "external_secret" { { secretKey = "TREK_USER", remoteRef = { key = "tripit", property = "TREK_USER" } }, { secretKey = "TREK_PASSWORD", remoteRef = { key = "tripit", property = "TREK_PASSWORD" } }, { secretKey = "CLAUDE_AGENT_TOKEN", remoteRef = { key = "tripit", property = "CLAUDE_AGENT_TOKEN" } }, + # Read-only Nextcloud app-password for the calendar-conflict column + # (tripit issue #19) — CalDAV PROPFIND/REPORT only. Single-account: this + # is the owner's (admin's) calendar, so every tripit user's conflict + # check reflects viktor's availability (v1 caveat, documented in-app). + { secretKey = "NEXTCLOUD_CALDAV_APP_PASSWORD", remoteRef = { key = "tripit", property = "NEXTCLOUD_CALDAV_APP_PASSWORD" } }, ] } }