Thanks to visit codestin.com
Credit goes to github.com

Skip to content

NetExplorer: add NetExplorer backend#9187

Open
TaoufikMseggar wants to merge 3 commits intorclone:masterfrom
TaoufikMseggar:netexplorer-pr-prep
Open

NetExplorer: add NetExplorer backend#9187
TaoufikMseggar wants to merge 3 commits intorclone:masterfrom
TaoufikMseggar:netexplorer-pr-prep

Conversation

@TaoufikMseggar
Copy link

@TaoufikMseggar TaoufikMseggar commented Feb 17, 2026

What is the purpose of this change?

I'm a software engineer in the NetExplorer team. This PR adds support for NetExplorer as a new rclone backend and includes the minimal core hooks needed to enforce NetExplorer path constraints early.

Main changes:

  • Add new backend: backend/netexplorer
    • backend registration in backend/all/all.go
    • integration test entry (TestNetExplorer)
    • docs page and provider list wiring (README, docs index/list/navbar/manual, fstest/test_all/config.yaml)
  • Add optional RemotePathValidator interface in core fs and call it in copy/mkdir/dir-metadata/sync paths
    • this is optional and only affects backends implementing it
    • NetExplorer implements ValidateRemotePath(...) to reject forbidden names early (including dry-run scenarios)
  • NetExplorer auth/password handling updates
    • password option is required
    • obscured password from config is revealed before authentication
    • token refresh behavior from external updates remains supported
  • Config UX scope control
    • introduce NoPasswordGenerate option flag
    • disable generated password choice only for NetExplorer password
    • no behavior change for other existing backends unless they opt in

Was the change discussed in an issue or in the forum before?

Not yet. I can open a discussion issue if maintainers prefer backend + core hook changes to be split.

Validation

I ran targeted tests locally:

  • go test ./backend/netexplorer -count=1
  • go test ./fs/config -run "TestCRUD|TestChooseOption|TestDefaultRequired" -count=1
  • go test ./fs -run "TestOptionMarshalJSON" -count=1
  • go test ./fs/list ./fs/operations ./fs/sync -count=1

Checklist

  • I have read the contribution guidelines.
  • I have added tests for changes where appropriate.
  • I have added documentation for the changes.
  • All commit messages are in house style.
  • This PR is ready for review.

Add a new optional fs.RemotePathValidator interface and call it in copy/mkdir/dir-metadata paths so backends can fail invalid destination paths early, including in --dry-run scenarios.

Also normalize leading/trailing slashes in list directory membership checks and preserve root '/' entries to avoid false filtering.

Additionally promote unchanged-skip messages to info level for clearer transfer output.
Add a new netexplorer backend, register it in backend/all, and add integration test wiring with TestNetExplorer for fstests.

Mark authentication fields as sensitive/password and generate backend options documentation in docs/content/netexplorer.md.

Add NetExplorer to provider/documentation indexes (README, docs list, homepage provider list, navbar, manual builder).
Revert unchanged-skip messages back to Debugf to avoid timing-sensitive regressions in fs/sync directory modtime tests on Windows.
@TaoufikMseggar TaoufikMseggar changed the title backend/netexplorer: add NetExplorer backend NetExplorer: add NetExplorer backend Feb 19, 2026
@ncw
Copy link
Member

ncw commented Feb 26, 2026

HI!

You shouldn't need to make any changes at all to anything under fs for a new backend.

Please explain what problems you are having and we can try to come up with solutions that don't involve hacking the rclone core just for your backend.

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.

2 participants