Part of Integrate upstream vosfs and fsspec-cli as canfar data.
Summary
Add the configuration model that associates one or more named VOSpace services with each Science Platform Server. This ticket owns the domain/configuration shape only.
Required changes
- Add
VOSpaceService with:
uri: AnyUrl — registry resource identifier;
url: AnyHttpUrl — VOSpace base endpoint without /capabilities.
- Add
Server.storage: dict[str, VOSpaceService] with an empty default.
- Keep Configuration schema version
1; existing files without storage must load unchanged.
- Treat each nested key as a globally unique Storage Name.
- Reserve
local.
- Apply upstream source-name constraints: non-empty; no colon, NUL, or newline; not starting with
-.
- Reject duplicate Storage Names across different servers.
- Do not duplicate the mapping key as a required field inside
VOSpaceService.
- Add VOSpace Service and Storage Name to
CONTEXT.md.
Acceptance criteria
Out of scope
Registry discovery, credential resolution, filesystem construction, CLI registration, storage-management commands, VOSpace protocol code, and public Python storage helpers.
Delivery
Implemented through ticket PR #216 on feat/vosfs-support. Configuration head: 5f75b131. The earlier optional-extra packaging decision is superseded by parent #150: #154 will promote vosfs and fsspec-cli to normal dependencies and remove canfar[data] before landing the full epic.
Amended 2026-07-25
The acceptance criteria above are preserved as originally written. The items
below changed after this issue was filed, at the maintainer's request, and
shipped in #217.
- Existing configurations are healed on load. This qualifies "existing
files without storage must load unchanged". Configuration restores the
default CADC Storage Identifiers when a saved Server carries a legacy
Server-Name key or no storage at all, so canfar data ls arc:/ works for
installs predating arc/vault. The heal is scoped to the default Servers,
leaves deliberate Storage Identifiers untouched, and normalizes in memory
only; the file is rewritten when something independently calls save().
Part of Integrate upstream vosfs and fsspec-cli as canfar data.
Summary
Add the configuration model that associates one or more named VOSpace services with each Science Platform Server. This ticket owns the domain/configuration shape only.
Required changes
VOSpaceServicewith:uri: AnyUrl— registry resource identifier;url: AnyHttpUrl— VOSpace base endpoint without/capabilities.Server.storage: dict[str, VOSpaceService]with an empty default.1; existing files withoutstoragemust load unchanged.local.-.VOSpaceService.CONTEXT.md.Acceptance criteria
storagemappings.mainbaseline.Out of scope
Registry discovery, credential resolution, filesystem construction, CLI registration, storage-management commands, VOSpace protocol code, and public Python storage helpers.
Delivery
Implemented through ticket PR #216 on
feat/vosfs-support. Configuration head:5f75b131. The earlier optional-extra packaging decision is superseded by parent #150: #154 will promotevosfsandfsspec-clito normal dependencies and removecanfar[data]before landing the full epic.Amended 2026-07-25
The acceptance criteria above are preserved as originally written. The items
below changed after this issue was filed, at the maintainer's request, and
shipped in #217.
files without
storagemust load unchanged".Configurationrestores thedefault CADC Storage Identifiers when a saved Server carries a legacy
Server-Name key or no storage at all, so
canfar data ls arc:/works forinstalls predating
arc/vault. The heal is scoped to the default Servers,leaves deliberate Storage Identifiers untouched, and normalizes in memory
only; the file is rewritten when something independently calls
save().