(row: {
readonly slug?: unknown;
readonly grant?: unknown;
readonly resource?: unknown;
readonly origin_kind?: unknown;
readonly origin_integration?: unknown;
})
| 363 | }; |
| 364 | |
| 365 | const parseOAuthClientOrigin = (row: { |
| 366 | readonly slug?: unknown; |
| 367 | readonly grant?: unknown; |
| 368 | readonly resource?: unknown; |
| 369 | readonly origin_kind?: unknown; |
| 370 | readonly origin_integration?: unknown; |
| 371 | }): OAuthClientOrigin => { |
| 372 | // Shared DCR classification (explicit origin_kind OR the legacy MCP-shaped |
| 373 | // heuristic) lives in `oauth-gc` so the runtime and the GC/backfill |
| 374 | // migrations agree exactly on what counts as a DCR row. |
| 375 | if (!isDcrClassifiedRow(row)) { |
| 376 | return { |
| 377 | kind: "manual", |
| 378 | integration: |
| 379 | row.origin_integration == null |
| 380 | ? null |
| 381 | : IntegrationSlug.make(String(row.origin_integration)), |
| 382 | }; |
| 383 | } |
| 384 | // An explicit-origin DCR row carries its requesting integration; a |
| 385 | // heuristic-classified legacy row (null origin_kind) has none. |
| 386 | return { |
| 387 | kind: "dynamic_client_registration", |
| 388 | integration: |
| 389 | row.origin_kind === "dynamic_client_registration" && row.origin_integration != null |
| 390 | ? IntegrationSlug.make(String(row.origin_integration)) |
| 391 | : null, |
| 392 | }; |
| 393 | }; |
| 394 | |
| 395 | interface LoadedOAuthClient { |
| 396 | readonly slug: string; |
no test coverage detected