Read Methods (get(), list(), and subpaths())
Connector::get(addr) should decode addr and make an API call or similar to the remote service in order to get the current state of the resource at addr, if it exists.
Connector::get(addr) should return the serialized (RON, JSON, YAML etc) state of the resource, and can return some other metadata as well in GetResourceResponse.
Connector::subpaths() is optional, and used to constrain Connector::list(subpath).
If Connector::subpaths() is not overridden, the default is to return ["./"], a single subpath that doesn't constrain Connector::list() at all.
Connector::list(subpath) optionally interprets subpath to scan and list only a subset of resources, those that start with subpath.
A utility function, addr_matches_filter(addr, filter) exists to do this subpath filtering in a path-normalized manner that also supports globs/wildcards.
Note that even if your connector ignores subpath, the host will filter results after the fact according to subpath if desired, so implementing it is only necessary to speed up and have finer granularity for imports. It's not necessary to implement it when just getting started.
get() returns serialized resource bytes plus optional outputs:
Important behavior:
Connector::get(addr)should returnOk(None)if the remote resource does not exist. Missing resources are not an error condition.list()returns paths only. It does not need to load every resource body.subpaths()should stay conservative. Return./if your connector cannot meaningfully split the address space.
Reference files:

