webdav
@noy-db/to-webdav·pnpm add @noy-db/to-webdavNextcloud / ownCloud / any RFC 4918 server.
| Shape | record |
| Atomic CAS | ✗ |
| Locality | remote |
| Speed | slow |
| Persistence | durable |
What it does
Stores encrypted envelopes over the WebDAV protocol. Works with Nextcloud,
ownCloud, Apache mod_dav, or any RFC 4918-compliant server. Pure fetch()-based,
zero dependencies.
Notes
casAtomic: false— WebDAV has no atomic CAS primitive; last-write-wins.- Record shape, one file per record.
- Factory:
toWebdav(options: WebDAVStoreOptions).
Store-locator descriptor
See store-locator descriptors for the general model —
this store is one of the seam's two reference implementations. kind: 'webdav', class: 'lan'. address is { baseUrl, prefix? }; options is
the serializable server-quirk flags { autoMkcol?, eagerMkcol? }.
binding.fetch?/binding.headers? carry a device-local transport override
(a wrapper injecting session auth, or a test fake) or static headers; a
kind: 'token' StoreCredentialSource at resolve() time becomes a
rolling Authorization: Bearer <token>, cached and refreshed within a skew
window of expiresAt.
import { webdavStoreDescriptor, registerWebdavStore } from '@noy-db/to-webdav'
const descriptor = webdavStoreDescriptor({ baseUrl: 'https://cloud.example.com/remote.php/dav' })