utils/crdt-sync/tool
Krzysztof kuhy Rudnicki e56aec431c crdt-sync: script the one human step when the Web client secret rotates
seed_session failed with invalid_client on 2026-09-11: the secret in
~/.config/crdt-sync/oauth_client_secret had worked on 2026-08-12 with the
same client id, so it was rotated in the console since. There is no API
for it (no gcloud command, none in the Firebase CLI), so the irreducible
step is copying it from the console page. refresh_oauth_secret.sh opens
that page, reads the paste without echo, rejects anything that is not a
GOCSPX- secret before writing, and runs the seed at once so a wrong paste
fails here rather than on the next timer tick.

xdg-open is detached from stdin: the spawned browser inherited the
terminal and swallowed the paste.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019pBgaXSJKyY3DarYpDatDF
2026-09-11 14:10:17 +02:00
..
__init__.py crdt_sync: add the one-shot GitHub -> Firebase data migration 2026-08-03 18:31:18 +02:00
_oauth_callback.py crdt-sync: clear the ruff 0.15.2 findings CI reported 2026-08-22 15:56:08 +02:00
_seeded_apps.py Drop the gatelock dependency, and actually sync the pool 2026-09-07 15:56:42 +02:00
google_id_token.py Fix the cap hook in CI, and the re-exports its --all-files run exposed 2026-08-22 15:52:59 +02:00
interop_seed.py Group sync_log's 11 arguments into three bundles 2026-08-21 14:22:25 +02:00
link_google.py Grade crdt-sync and gatelock against 3.14 too, not just run on them 2026-08-29 11:47:21 +02:00
migrate_github_to_firebase.py crdt_sync: add the one-shot GitHub -> Firebase data migration 2026-08-03 18:31:18 +02:00
preflight_firebase.py crdt_sync 0.5.0: the shared config and the cutover seam 2026-08-04 22:59:48 +02:00
refresh_oauth_secret.sh crdt-sync: script the one human step when the Web client secret rotates 2026-09-11 14:10:17 +02:00
seed_session.py Drop the gatelock dependency, and actually sync the pool 2026-09-07 15:56:42 +02:00