Skip to content

Tracking issues of RFC-6707: Capability Override Layer #6708

@Xuanwo

Description

@Xuanwo

Status

The first implementation has landed. It added a shared CapabilityOverrideLayer, wired OPENDAL_TEST_CAPABILITY_OVERRIDES into the behavior test harnesses, and migrated S3 test setups for versioning, append, and write-if-match coverage.

The current service migration pass has landed for S3, OSS, COS, TOS, OneDrive, OBS, Azblob, WebDAV, HDFS, and HDFS Native. A follow-up repo-wide scan found one remaining capability-only config candidate: SFTP enable_copy only gates Capability::copy, while the copy implementation itself does not read the flag.

Implementation tasks

Service migration candidates

S3

OSS

COS

TOS

OneDrive

OBS

Azblob

WebDAV

HDFS and HDFS Native

SFTP

  • Migrate/deprecate enable_copy, which only gates Capability::copy; SFTP copy implementation streams data through the client and does not read this flag. The local SFTP fixture passes behavior::test_copy_file_with_ascii_name without OPENDAL_SFTP_ENABLE_COPY after enabling copy by default. (refactor(services/sftp): deprecate copy option #7568).

Not migration targets from this scan

These fields affect real request construction, credential loading, auth mode, or protocol strategy rather than only capability-based test selection, so they should not be migrated as part of RFC-6707 without a separate design:

  • S3/COS/TOS/GCS credential/config loading switches such as disable_config_load and metadata-service switches.
  • S3 disable_list_objects_v2, because it changes the list API version used by requests.
  • S3 enable_virtual_host_style and enable_request_payer, because they affect request addressing and headers.
  • Azblob sas_token based presign capabilities, because they derive from the selected auth mode.
  • HF token-gated write/delete capabilities, because they derive from whether write credentials are configured.
  • HTTP anonymous presign capabilities, because they derive from whether auth is configured.
  • WebDAV disable_create_dir, because it changes write behavior by skipping automatic parent directory creation.
  • WebHDFS disable_list_batch, because it changes the listing strategy.
  • WebHDFS atomic_write_dir, because it enables multi-write by changing the temporary write path strategy.
  • WebDAV metadata namespace options, because they affect PROPFIND/PROPPATCH request payloads.

Follow-ups

  • Land SFTP enable_copy migration. (refactor(services/sftp): deprecate copy option #7568)
  • Decide the removal schedule for deprecated service config fields after downstream bindings have migrated.
  • Add user-facing docs/examples for non-test usage once the service migrations settle.
  • Do another full service-config scan before closing this tracker to catch newly added capability-only toggles.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions