ciam-auth-on-moonshot
CIAM auth on Moonshot
Moonshot — the app behind Dialogi (dialogi.duunitori.fi), Duunitori's employer questionnaire/ATS product — runs its own email-and-password login, completely separate from CIAM, the shared Cognito-based login used across the Duunitori sites. This project replaces moonshot's local auth with CIAM: one login across all .duunitori.fi apps, an entire self-maintained auth stack (and its Redis) deleted, and GDPR user deletions propagating to moonshot automatically instead of through a manual side process. The plan is complete — this page is here so the team can validate it before implementation starts.
dwh-data-sync
DWH data sync
We move data between the duunitori5 Postgres database and BigQuery in both directions, and both directions are built from hand-maintained one-off code. This project replaces the outbound side with Google Datastream — Google's managed change-data-capture service that reads the Postgres write-ahead log and mirrors tables into BigQuery — and, once that is stable, the inbound side with a single config-driven framework. The plan below is ready; we want the team to validate it before the first (operational) step is taken.
observability
Observability
Application monitoring across our stacks has grown by accretion: each stack picked its own vendor, more than half the Next.js apps ended up with missing or broken error tracking, and five separate alert paths funnel into Slack through hand-configured bridges. This project consolidates application observability onto two clearly-owned pillars — Sentry for errors, New Relic for backend telemetry — and rationalizes alerting into two severity-based Slack channels. The plan is decided and the code is already built and reviewed (five PRs open awaiting merge); this page exists to validate the approach and the activation plan before the code merges.
user-data-deletion
User-data deletion
When an account is deleted in CIAM, the person's personal data is supposed to be erased across our systems — that's a GDPR right-to-erasure obligation, not a nice-to-have. We audited the full deletion chain against the actual code (CIAM → SNS → duunitori5, plus moonshot and the data warehouse) and found that while the core account path works, deleted users' PII — plaintext emails, saved-search profiles — provably survives in several places, some of them forever. This page lays out the fixes we propose to ship now (four workstreams), where and why we drew the line on the rest, and the questions we want the team to answer.