Skip to content

feat(files): enforce workflow-scoped file transfers - #1355

Merged
v1r3n merged 1 commit into
mainfrom
feat/workflow-scoped-file-api
Jul 20, 2026
Merged

feat(files): enforce workflow-scoped file transfers#1355
v1r3n merged 1 commit into
mainfrom
feat/workflow-scoped-file-api

Conversation

@v1r3n

@v1r3n v1r3n commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

Pull Request type

  • Bugfix
  • Feature
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • WHOSUSING.md
  • Other (please describe):

Changes in this PR

Makes file operations workflow-aware end to end:

  • scopes upload URL refresh, completion, metadata, and multipart routes by workflow ID
  • requires the exact owning workflow for upload mutations
  • allows workflow-family access for metadata and downloads
  • adds best-effort multipart abort, including native S3 abort
  • returns the storage-reported fileSize in metadata
  • updates REST, service, integration, and E2E coverage
  • replaces stale file-storage API/architecture/Java SDK documentation

Breaking change: the previous unscoped mutation and metadata routes are removed. Clients must pass workflow context on every operation.

Issue #

Tests

  • ./gradlew :conductor-core:test --tests org.conductoross.conductor.core.storage.converter.FileModelConverterTest --tests org.conductoross.conductor.core.storage.FileStorageServiceImplTest :conductor-rest:test --tests org.conductoross.conductor.rest.controllers.FileResourceTest -x :conductor-ai:compileJava
  • ./gradlew :conductor-common:spotlessJavaApply :conductor-core:spotlessJavaApply :conductor-rest:spotlessJavaApply :conductor-awss3-storage:spotlessJavaApply :conductor-e2e:spotlessJavaApply :conductor-test-harness:spotlessJavaApply
  • live local-storage E2E on port 8080: media-transcode workflow completed and metadata returned correct byte sizes

Alternatives considered

Keeping unscoped routes or trusting a supplied file handle alone would leave upload mutations detached from ownership. Proxying file bytes through Conductor was also rejected; signed URLs retain the direct-to-storage data path.

@v1r3n

v1r3n commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator Author

Companion Java SDK PR: conductor-oss/java-sdk#137. The SDK PR consumes the workflow-scoped routes introduced here and documents the coordinated migration.

@v1r3n
v1r3n changed the base branch from main to dev July 19, 2026 04:21
@v1r3n
v1r3n changed the base branch from dev to main July 19, 2026 04:28
@v1r3n
v1r3n merged commit ba0afb3 into main Jul 20, 2026
7 checks passed
@v1r3n
v1r3n deleted the feat/workflow-scoped-file-api branch July 20, 2026 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants