(row: {
readonly slug?: unknown;
readonly grant?: unknown;
readonly resource?: unknown;
readonly origin_kind?: unknown;
readonly origin_integration?: unknown;
})
| 303 | }; |
| 304 | |
| 305 | const parseOAuthClientOrigin = (row: { |
| 306 | readonly slug?: unknown; |
| 307 | readonly grant?: unknown; |
| 308 | readonly resource?: unknown; |
| 309 | readonly origin_kind?: unknown; |
| 310 | readonly origin_integration?: unknown; |
| 311 | }): OAuthClientOrigin => { |
| 312 | // Shared DCR classification (explicit origin_kind OR the legacy MCP-shaped |
| 313 | // heuristic) lives in `oauth-gc` so the runtime and the GC/backfill |
| 314 | // migrations agree exactly on what counts as a DCR row. |
| 315 | if (!isDcrClassifiedRow(row)) { |
| 316 | return { |
| 317 | kind: "manual", |
| 318 | integration: |
| 319 | row.origin_integration == null |
| 320 | ? null |
| 321 | : IntegrationSlug.make(String(row.origin_integration)), |
| 322 | }; |
| 323 | } |
| 324 | // An explicit-origin DCR row carries its requesting integration; a |
| 325 | // heuristic-classified legacy row (null origin_kind) has none. |
| 326 | return { |
| 327 | kind: "dynamic_client_registration", |
| 328 | integration: |
| 329 | row.origin_kind === "dynamic_client_registration" && row.origin_integration != null |
| 330 | ? IntegrationSlug.make(String(row.origin_integration)) |
| 331 | : null, |
| 332 | }; |
| 333 | }; |
| 334 | |
| 335 | interface LoadedOAuthClient { |
| 336 | readonly slug: string; |
no test coverage detected