MUH. IQRAM BAHRING
604b4d85d5
fix(codebuddy-intl): probe token in connection test + name OAuth by identity
...
Two bugs on codebuddy-intl connections:
1. Test Connection always failed with "Provider test not supported":
codebuddy-intl was missing from OAUTH_TEST_CONFIG, so testOAuthConnection
bailed before probing. Add a real probe against the Keycloak realm's
userinfo endpoint (URL derived from the token's iss claim), and wire
refreshable so an expired token is rotated via refreshCodebuddyIntlToken.
2. OAuth logins were named "Account N" with no email: mapTokens returned no
identity, even though the access token is a Keycloak JWT carrying
email/name claims. Extract email + displayName in mapTokens (new shared
extractDisplayNameFromAccessToken helper) so fresh logins are named and
deduped by identity.
Also add a run-once backfill (backfillCodeBuddyIntlIdentity) invoked from
GET /api/providers and /api/providers/client to self-heal existing rows
(backfill email/displayName, rename the generic "Account N" placeholder).
Verified live: the real connection now returns valid:true and the row is
renamed to the account email.
2026-09-19 12:14:21 +08:00
..
2026-09-17 18:26:22 +07:00
2026-08-14 16:32:54 +07:00
2026-06-29 15:29:49 +07:00
2026-07-19 16:29:55 +07:00
2026-09-18 17:08:53 +07:00
2026-04-17 12:15:10 +07:00
2026-09-02 20:14:59 +07:00
2026-06-06 10:48:14 +07:00
2026-08-14 16:34:54 +07:00
2026-06-14 13:15:48 +07:00
2026-09-09 09:57:13 +07:00
2026-09-09 09:57:13 +07:00
2026-09-09 09:57:13 +07:00
2026-09-03 09:34:24 +07:00
2026-09-03 09:13:45 +07:00
2026-07-29 19:30:44 +07:00
2026-09-18 17:09:36 +07:00
2026-09-09 09:57:13 +07:00
2026-09-09 09:57:13 +07:00
2026-09-09 09:57:13 +07:00
2026-09-10 22:48:28 +07:00
2026-08-05 10:27:27 +07:00
2026-08-02 09:34:27 +07:00
2026-06-26 17:19:46 +07:00
2026-05-16 10:54:41 +07:00
2026-07-07 12:02:56 +07:00
2026-07-16 17:20:10 +07:00
2026-07-03 15:18:27 +07:00
2026-08-28 16:46:05 +07:00
2026-07-29 19:34:14 +07:00
2026-06-18 09:13:27 +07:00
2026-09-17 17:55:33 +07:00
2026-07-07 11:55:45 +07:00
2026-09-10 22:54:07 +07:00
2026-09-02 20:42:53 +07:00
2026-09-02 20:07:16 +07:00
2026-09-05 21:26:16 +07:00
2026-08-05 11:54:16 +07:00
2026-07-16 15:29:52 +07:00
2026-09-10 22:48:22 +07:00
2026-09-19 11:47:15 +08:00
2026-09-10 22:48:28 +07:00
2026-06-29 15:22:47 +07:00
2026-09-19 12:14:21 +08:00
2026-09-19 12:14:21 +08:00
2026-06-26 10:51:16 +07:00
2026-09-18 17:05:47 +07:00
2026-08-05 11:39:59 +07:00
2026-06-15 18:18:04 +07:00
2026-09-05 21:01:52 +07:00
2026-08-05 11:39:59 +07:00
2026-08-05 16:17:26 +07:00
2026-09-05 21:18:07 +07:00
2026-08-27 17:56:26 +07:00
2026-09-10 22:25:47 +07:00
2026-06-15 18:18:04 +07:00
2026-06-20 15:19:31 +07:00
2026-05-01 16:36:36 +07:00
2026-09-18 17:09:24 +07:00
2026-06-14 18:49:38 +07:00
2026-09-16 20:17:25 +07:00
2026-07-03 15:18:27 +07:00
2026-08-05 13:27:25 +07:00
2026-07-07 12:06:09 +07:00
2026-09-05 21:12:16 +07:00
2026-07-29 19:29:27 +07:00
2026-07-20 15:39:55 +07:00
2026-05-21 09:52:30 +07:00
2026-07-20 15:39:55 +07:00
2026-08-05 10:32:32 +07:00
2026-08-14 16:33:58 +07:00
2026-09-03 09:29:12 +07:00
2026-05-09 17:48:20 +07:00
2026-05-09 17:48:20 +07:00
2026-05-09 22:48:07 +07:00
2026-05-09 17:48:20 +07:00
2026-09-09 10:26:03 +07:00
2026-09-10 22:26:44 +07:00
2026-09-17 20:06:33 +07:00
2026-09-03 10:05:35 +07:00
2026-07-29 18:10:03 +07:00
2026-07-23 16:07:57 +07:00
2026-02-18 13:24:02 +07:00
2026-06-13 10:54:51 +07:00
2026-09-03 09:24:18 +07:00
2026-09-03 09:48:19 +07:00
2026-09-03 10:13:15 +07:00
2026-06-15 18:18:04 +07:00
2026-06-15 11:38:43 +07:00
2026-08-14 16:21:11 +07:00
2026-06-26 10:37:23 +07:00
2026-08-15 03:47:18 +08:00
2026-09-11 12:21:35 +08:00
2026-09-11 12:21:35 +08:00
2026-08-13 11:56:43 +07:00
2026-08-14 16:27:10 +07:00
2026-09-03 09:13:45 +07:00
2026-07-23 16:34:24 +07:00
2026-08-28 16:44:07 +07:00
2026-09-03 09:13:45 +07:00
2026-06-26 10:50:13 +07:00
2026-06-26 10:32:34 +07:00
2026-05-26 11:23:47 +07:00
2026-08-05 11:00:40 +07:00
2026-05-29 15:40:42 +07:00
2026-08-28 15:35:23 +07:00
2026-07-19 13:35:38 +07:00
2026-07-16 15:33:19 +07:00
2026-07-16 12:00:14 +07:00
2026-07-16 15:33:19 +07:00
2026-08-15 03:47:18 +08:00
2026-07-29 18:09:43 +07:00
2026-08-05 11:43:40 +07:00
2026-09-02 20:04:35 +07:00
2026-07-16 11:27:42 +07:00
2026-07-10 17:32:45 +07:00
2026-06-29 15:59:21 +07:00
2026-08-28 16:34:33 +07:00
2026-08-13 18:30:44 +07:00
2026-06-02 21:14:36 +08:00
2026-06-15 18:18:04 +07:00
2026-09-10 22:06:48 +07:00
2026-07-23 16:28:37 +07:00
2026-07-03 10:58:31 +07:00
2026-07-03 11:11:07 +07:00
2026-07-29 21:05:23 +07:00
2026-09-09 10:56:54 +07:00
2026-07-29 19:27:41 +07:00
2026-06-26 11:42:05 +07:00
2026-09-03 09:21:37 +07:00
2026-09-09 10:56:54 +07:00
2026-08-13 11:56:31 +07:00
2026-07-20 10:55:33 +07:00
2026-07-29 19:27:41 +07:00
2026-09-10 22:25:35 +07:00
2026-07-20 10:55:33 +07:00
2026-09-17 18:12:48 +07:00
2026-08-13 11:33:41 +07:00
2026-08-14 16:33:58 +07:00
2026-06-21 16:51:47 +07:00
2026-06-13 11:43:18 +07:00
2026-08-28 16:34:05 +07:00
2026-05-13 15:34:10 +07:00
2026-06-06 10:01:05 +07:00
2026-05-13 15:34:10 +07:00
2026-07-01 09:30:52 +07:00
2026-06-15 18:18:04 +07:00
2026-09-17 17:55:33 +07:00
2026-09-02 20:20:32 +07:00
2026-07-05 17:34:04 +07:00
2026-06-18 09:10:52 +07:00
2026-06-03 01:53:34 +08:00
2026-06-14 18:49:38 +07:00
2026-02-20 15:07:43 +07:00
2026-08-27 20:53:02 +07:00
2026-08-02 09:34:27 +07:00
2026-09-03 10:13:15 +07:00
2026-08-05 10:38:25 +07:00
2026-08-05 13:27:25 +07:00
2026-08-05 13:27:25 +07:00
2026-08-13 11:40:45 +07:00
2026-07-16 15:33:19 +07:00
2026-08-05 13:27:25 +07:00
2026-06-29 16:05:29 +07:00
2026-05-26 11:33:38 +07:00
2026-07-10 11:11:37 +07:00
2026-09-10 23:13:06 +07:00
2026-09-16 20:17:25 +07:00
2026-09-09 10:56:54 +07:00
2026-06-15 11:38:43 +07:00
2026-09-17 18:20:08 +07:00
2026-09-17 18:00:01 +07:00
2026-09-17 18:19:21 +07:00
2026-09-05 21:09:49 +07:00
2026-09-05 21:10:10 +07:00
2026-09-17 18:19:21 +07:00
2026-09-18 17:32:52 +07:00
2026-07-07 11:57:04 +07:00
2026-04-22 11:58:53 +07:00
2026-08-13 11:56:43 +07:00
2026-08-07 03:51:29 +08:00
2026-09-16 20:17:25 +07:00
2026-06-20 15:19:22 +07:00
2026-08-05 13:13:54 +07:00
2026-06-06 10:01:05 +07:00
2026-06-15 11:38:43 +07:00
2026-09-05 21:56:07 +07:00
2026-06-02 21:14:36 +08:00
2026-06-26 12:06:35 +07:00
2026-03-16 09:21:05 +07:00
2026-09-03 09:39:01 +07:00
2026-08-15 03:47:18 +08:00
2026-07-10 16:10:42 +07:00
2026-08-13 11:43:11 +07:00
2026-09-10 22:08:19 +07:00
2026-09-10 22:08:19 +07:00
2026-07-16 12:09:48 +07:00
2026-06-06 12:25:12 +07:00
2026-08-13 11:50:25 +07:00
2026-07-10 13:08:58 +07:00
2026-09-16 20:04:10 +07:00
2026-09-05 22:39:22 +07:00
2026-08-13 11:46:49 +07:00
2026-04-22 15:36:51 +07:00
2026-04-22 15:36:51 +07:00
2026-07-07 12:02:56 +07:00
2026-07-09 15:12:52 +07:00
2026-05-17 15:13:37 +07:00
2026-08-13 17:56:34 +07:00
2026-08-13 11:50:25 +07:00
2026-07-10 11:29:06 +07:00
2026-06-26 11:04:51 +07:00
2026-07-16 15:15:05 +07:00
2026-09-03 09:22:22 +07:00
2026-08-14 16:33:58 +07:00
2026-09-10 22:25:35 +07:00
2026-07-09 15:13:24 +07:00
2026-08-05 11:39:59 +07:00
2026-07-23 16:27:06 +07:00
2026-06-13 21:32:52 +07:00
2026-08-28 16:58:27 +07:00
2026-06-26 17:22:02 +07:00
2026-06-14 18:49:38 +07:00
2026-06-14 18:49:38 +07:00
2026-07-23 16:22:47 +07:00
2026-06-15 11:38:43 +07:00
2026-09-16 20:17:25 +07:00
2026-09-03 09:43:01 +07:00
2026-06-26 11:37:44 +07:00
2026-09-10 23:18:52 +07:00
2026-04-22 11:58:53 +07:00
2026-07-25 17:25:19 +07:00
2026-05-21 11:33:18 +07:00
2026-05-21 11:33:18 +07:00
2026-07-16 15:29:52 +07:00
2026-09-10 22:05:22 +07:00
2026-09-10 23:42:41 +07:00
2026-09-10 23:42:41 +07:00
2026-09-10 23:42:41 +07:00
2026-08-05 11:46:23 +07:00
2026-08-27 16:10:00 +07:00
2026-09-17 20:02:57 +07:00
2026-09-17 20:02:57 +07:00
2026-09-17 20:02:57 +07:00
2026-08-28 16:16:01 +07:00