From c5fa1b5a381921fdd421338efdecbc1eac9d5c32 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sat, 3 Jan 2026 18:43:25 -0300 Subject: [PATCH] vaultwarden: backfill synced_at --- scripts/vaultwarden_cred_sync.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/scripts/vaultwarden_cred_sync.py b/scripts/vaultwarden_cred_sync.py index 5dbf22f..d259b31 100644 --- a/scripts/vaultwarden_cred_sync.py +++ b/scripts/vaultwarden_cred_sync.py @@ -136,6 +136,7 @@ def main() -> int: full_user = user current_status = _extract_attr(full_user.get("attributes"), VAULTWARDEN_STATUS_ATTR) + current_synced_at = _extract_attr(full_user.get("attributes"), VAULTWARDEN_SYNCED_AT_ATTR) email = _vaultwarden_email_for_user(full_user) if not email: print(f"skip {username}: missing email", file=sys.stderr) @@ -150,6 +151,15 @@ def main() -> int: # If we've already successfully invited or confirmed presence, do not re-invite on every cron run. # Vaultwarden returns 409 for "already exists", which is idempotent but noisy and can trigger rate limits. if current_status in {"invited", "already_present"}: + if not current_synced_at: + try: + _set_user_attribute( + username, + VAULTWARDEN_SYNCED_AT_ATTR, + time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), + ) + except Exception: + pass skipped += 1 continue