Repository navigation
Release - #554
Merged
Merged
Release#554
Conversation
authlib's OAuth2Client.ensure_active_token() prefers the refresh-token grant whenever the token dict carries a "refresh_token" key, regardless of grant type (it checks refresh_token before the client_credentials branch). Some B-Fabric token endpoints return a refresh_token alongside a client_credentials access token. Honoring it means that once the refresh token expires (it has its own, shorter lifetime) every call fails with invalid_grant and the session never falls back to re-fetching with the client secret, wedging the provider until the process restarts. For client_credentials providers, strip any refresh_token from the session token (after the initial fetch and before each expiry check) so authlib always re-fetches a brand-new token on expiry. The refresh_token grant path is unaffected.
Maps B-Fabric objects onto the generic movers from the layer below. - `UploadRestClient`: the `/rest/upload/*` calls (check-duplicates, create-resources, initiate) over the client's OAuth access token, plus `tus_sink_for_resource` - `resource_sources` / `ssh_source` / `http_source`: Resource → download source - `token_provider` and the fail-fast scope pre-checks (`check_upload_scope` / `check_download_scope`) `transfer/__init__.py` now re-exports both halves as one namespace. Reuses the existing `bfabric._oauth` (already on main).
…536) Adds the end-to-end file-upload feature on top of the transfer layer. - `operations.workunit.upload_files`: create-or-reuse workunit → dedup → create resources → mint tus token → transfer each file, with the operations-module failure-cleanup contract (mark failed, never delete) - `operations.workunit.create_workunit`: the small base64-over-SOAP create - `bfabric-cli workunit upload`: CLI front-end with a live progress bar
Migrate `bfabric_app_runner` onto the new `bfabric.transfer` layer and remove code which was extracted to there. - `inputs/prepare/` and `output_registration/` now delegate byte transfers to `bfabric.transfer` (`fetch_to_path`, `send_to_sink`, `md5_checksum`, `token_provider`, scope checks); `inputs/resolve/_common.py` source construction moved into the core binding. - Deletes app_runner's own `util/scp.py` and `util/checksum.py`, now provided by the library.
Bump bfabric-asgi-auth's direct starlette pin to >=1.0.1,<2 and bfabric-rest-proxy's fastapi floor to >=0.134.0 so its transitive starlette resolves to >=1.0.1. Closes #505
Contributor
🚀 Release PreviewThe following packages will be released when this PR is merged:
This comment is automatically updated when the PR changes. |
Contributor
✅ Release Distribution TestingPackages to release: bfabric, bfabric_scripts, bfabric_app_runner Test Results:
Status: All tests passed with built distributions. The packages are ready for release. Last updated: 2026-07-15T07:45:18.318Z |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release candidates for end to end testing.