Skip to content

[7418] s3 and wevdav datasources - #8870

Draft
jvega190 wants to merge 6 commits into
craftersoftware:developfrom
jvega190:7418-s3-wevdav-datasources
Draft

[7418] s3 and wevdav datasources#8870
jvega190 wants to merge 6 commits into
craftersoftware:developfrom
jvega190:7418-s3-wevdav-datasources

Conversation

@jvega190

@jvega190 jvega190 commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

#7418

Summary by CodeRabbit

  • New Features

    • Added browsing and uploading for external assets stored in S3 and WebDAV.
    • Added support for image, video, and generic asset workflows with file-type filtering and previews.
    • Added dialogs for selecting external assets and uploading files.
    • Added handling for remote upload results, including inferred file types and preview URLs.
    • Added graceful handling when browsing or uploading is canceled.
  • Documentation

    • Updated capability status and progress records for S3 and WebDAV integrations.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2d2b423e-6d2f-491c-aa0d-a6b9f7aad8bd

📥 Commits

Reviewing files that changed from the base of the PR and between 350b42c and 8d6a554.

📒 Files selected for processing (19)
  • studio-ui/docs/type-builder-forms-engine.md
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/moduleHelpers.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/services.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/types.ts
  • studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx
  • studio-ui/ui/app/src/env/studioUI.ts
💤 Files with no reviewable changes (1)
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts

Walkthrough

The Forms Engine now supports external S3 and WebDAV browse and upload flows. Shared request, service, and dialog wiring is included. Remote stubs are replaced with concrete generic, image, and video data-source modules.

Changes

External asset flow

Layer / File(s) Summary
External asset contracts and dialogs
studio-ui/ui/app/src/components/FormsEngine/dataSources/types.ts, studio-ui/ui/app/src/components/FormsEngine/dataSources/services.ts, studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx, studio-ui/ui/app/src/env/studioUI.ts
Adds browse and upload request types, service methods, dialog helpers, and lazy-loaded dialog entries.
External action factories
studio-ui/ui/app/src/components/FormsEngine/dataSources/moduleHelpers.ts
Adds profile validation, path expansion, service invocation, cancellation handling, and result mapping for external browse and upload actions.
Concrete S3 and WebDAV modules
studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/*.ts
Defines concrete browse and upload modules for generic, image, and video S3/WebDAV assets.
Capability status documentation
studio-ui/docs/type-builder-forms-engine.md
Updates the implementation status and progress log. Video S3 transcoding remains unsupported.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant DataSource as S3/WebDAV data source
  participant Action as External action factory
  participant Services as DataSourceServices
  participant Dialog as External asset dialog
  DataSource->>Action: create browse or upload action
  Action->>Services: pass expanded path, profile, and filters
  Services->>Dialog: open external asset dialog
  Dialog-->>Services: return selections, upload result, or cancellation
  Services-->>Action: return array, result, or null
  Action-->>DataSource: map result to item or asset selection
Loading

Possibly related PRs

Suggested reviewers: jmendeza

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title identifies the S3 and WebDAV data-source changes, despite a minor WebDAV spelling error.
Description check ✅ Passed The description provides the required ticket reference through the issue URL.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@studio-ui/ui/app/src/components/FormsEngine/dataSources/moduleHelpers.ts`:
- Around line 302-340: Forward the configured mimeTypes allowlist from
createExternalBrowseAction into the browseExternalAssets request. Add
mimeTypes?: string[] to DataSourceBrowseExternalRequest in
studio-ui/ui/app/src/components/FormsEngine/dataSources/types.ts#L88-L96, and
retain the existing MIME allowlist handling in
studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Repo.ts#L34-L42
and
studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVRepo.ts#L34-L42
after request-level filtering.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e166a56a-79ab-405a-96ab-3a38a8ee0313

📥 Commits

Reviewing files that changed from the base of the PR and between 350b42c and 9949529.

📒 Files selected for processing (19)
  • studio-ui/docs/type-builder-forms-engine.md
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/moduleHelpers.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/services.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/types.ts
  • studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx
  • studio-ui/ui/app/src/env/studioUI.ts
💤 Files with no reviewable changes (1)
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts

@jvega190

jvega190 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai can you check if everything looks good? Please give it a final review before I hand over for human review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@jvega190 I will perform a final review of all changes in #8870 before human review.

✅ Action performed

Full review finished.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx`:
- Around line 267-308: Forward request.mimeTypes through
createDataSourceServices and showBrowseExternalAssetDialog into
BrowseExternalAssetDialog, adding it to BrowseExternalAssetDialogProps and the
container props. Filter fetched external files by mimeTypes before rendering or
allowing selection, while preserving the existing type filter behavior.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 30d67fc1-f838-49dd-b0ce-7f8cedda6b12

📥 Commits

Reviewing files that changed from the base of the PR and between 350b42c and 652c879.

📒 Files selected for processing (19)
  • studio-ui/docs/type-builder-forms-engine.md
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/moduleHelpers.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/imgWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/s3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Repo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoS3Upload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/videoWebDAVUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavRepo.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/webDavUpload.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/services.ts
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/types.ts
  • studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx
  • studio-ui/ui/app/src/env/studioUI.ts
💤 Files with no reviewable changes (1)
  • studio-ui/ui/app/src/components/FormsEngine/dataSources/modules/remoteStubs.ts

Comment thread studio-ui/ui/app/src/components/FormsEngine/lib/controlHelpers.tsx
@jvega190

jvega190 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai can you check if everything looks good? Please give it a final review before I hand over for human review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

@jvega190 I will perform a new final review of all changes in #8870 before human review.

✅ Action performed

Full review finished.

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.

1 participant