Commit bb3b56b
[FSTORE-2036] PR 4a — Python SDK support for Unity Catalog OAuth M2M
https://hopsworks.atlassian.net/browse/FSTORE-2036
PR 4 of 4 for FSTORE-2036, hopsworks-api half. Extend
UnityCatalogConnector so the Python SDK round-trips the new OAuth
fields the backend (PR 1 / PR 2) and frontend (PR 3) added. Legacy
PAT-only construction keeps working unchanged.
Constructor gains auth_method, client_id, client_secret,
oauth_endpoint, account_id, account_host, has_access_token, and
has_client_secret. auth_method defaults to "PAT" when absent so
existing code paths and fixtures that construct connectors with
just access_token keep producing PAT connectors. When the caller
asks for OAUTH_M2M without specifying oauth_endpoint, it defaults
to "WORKSPACE", matching the frontend default.
has_access_token and has_client_secret are write-only-friendly
booleans: the server emits them on read so a caller can tell whether
a secret is on file without ever seeing it. When constructed locally
with a secret in hand, has_* falls back to "is the secret non-None"
so client code that builds a connector in-process still reports the
correct state.
from_response_json keeps using humps.decamelize + **kwargs splat;
the new fields are picked up by name. The existing get_unity_catalog
fixture is updated to match the post-PR-1 backend wire format
(hasAccessToken: true on read; no decrypted access_token in the
response). Two new fixtures (get_unity_catalog_oauth_workspace,
get_unity_catalog_oauth_account) cover the OAuth modes.
Tests extended from 4 to 8 in TestUnityCatalogConnector. New cases:
from_response_json for OAuth workspace and OAuth account modes;
legacy construction defaulting to PAT (no auth_method supplied);
OAUTH_M2M construction defaulting oauth_endpoint to WORKSPACE.
uv run pytest TestUnityCatalogConnector — 8/8 passing.
uv run ruff check / docsig — clean.
Signed-off-by: Jim Dowling <jim@hopsworks.ai>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 95e9507 commit bb3b56b
3 files changed
Lines changed: 236 additions & 2 deletions
File tree
- python
- hsfs
- tests
- fixtures
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3365 | 3365 | | |
3366 | 3366 | | |
3367 | 3367 | | |
| 3368 | + | |
| 3369 | + | |
| 3370 | + | |
| 3371 | + | |
| 3372 | + | |
| 3373 | + | |
| 3374 | + | |
| 3375 | + | |
3368 | 3376 | | |
3369 | 3377 | | |
3370 | 3378 | | |
3371 | 3379 | | |
3372 | 3380 | | |
3373 | 3381 | | |
3374 | 3382 | | |
| 3383 | + | |
| 3384 | + | |
| 3385 | + | |
| 3386 | + | |
| 3387 | + | |
| 3388 | + | |
| 3389 | + | |
| 3390 | + | |
| 3391 | + | |
| 3392 | + | |
| 3393 | + | |
| 3394 | + | |
| 3395 | + | |
| 3396 | + | |
| 3397 | + | |
| 3398 | + | |
| 3399 | + | |
| 3400 | + | |
| 3401 | + | |
| 3402 | + | |
| 3403 | + | |
| 3404 | + | |
| 3405 | + | |
| 3406 | + | |
| 3407 | + | |
| 3408 | + | |
| 3409 | + | |
| 3410 | + | |
3375 | 3411 | | |
3376 | 3412 | | |
3377 | 3413 | | |
| |||
3418 | 3454 | | |
3419 | 3455 | | |
3420 | 3456 | | |
| 3457 | + | |
| 3458 | + | |
| 3459 | + | |
| 3460 | + | |
| 3461 | + | |
| 3462 | + | |
| 3463 | + | |
| 3464 | + | |
| 3465 | + | |
| 3466 | + | |
| 3467 | + | |
| 3468 | + | |
| 3469 | + | |
| 3470 | + | |
| 3471 | + | |
| 3472 | + | |
| 3473 | + | |
| 3474 | + | |
| 3475 | + | |
| 3476 | + | |
| 3477 | + | |
| 3478 | + | |
| 3479 | + | |
| 3480 | + | |
| 3481 | + | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
| 3486 | + | |
| 3487 | + | |
| 3488 | + | |
| 3489 | + | |
| 3490 | + | |
| 3491 | + | |
| 3492 | + | |
| 3493 | + | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
| 3507 | + | |
| 3508 | + | |
| 3509 | + | |
| 3510 | + | |
| 3511 | + | |
| 3512 | + | |
| 3513 | + | |
| 3514 | + | |
| 3515 | + | |
| 3516 | + | |
| 3517 | + | |
| 3518 | + | |
| 3519 | + | |
| 3520 | + | |
| 3521 | + | |
| 3522 | + | |
| 3523 | + | |
| 3524 | + | |
3421 | 3525 | | |
3422 | 3526 | | |
3423 | 3527 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
147 | | - | |
| 147 | + | |
| 148 | + | |
148 | 149 | | |
149 | 150 | | |
150 | 151 | | |
| |||
185 | 186 | | |
186 | 187 | | |
187 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
188 | 246 | | |
189 | 247 | | |
190 | 248 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
163 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
164 | 168 | | |
165 | 169 | | |
166 | 170 | | |
167 | 171 | | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
168 | 208 | | |
169 | 209 | | |
170 | 210 | | |
| |||
205 | 245 | | |
206 | 246 | | |
207 | 247 | | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
208 | 280 | | |
209 | 281 | | |
210 | 282 | | |
| |||
0 commit comments