lazaret/tests/fixtures/ignored-workspace-v1/contract.json

221 lines
5.4 KiB
JSON
Raw Permalink Normal View History

{
"schema": "lazaret-ignored-workspace-contract-v1",
"mechanism": "rootless-host-fuse-router",
"route_classes": [
"host",
"isolated"
],
"transition_contracts": [
{
"id": "qualified-host-to-isolated-rename",
"operations": [
"rename",
"rename-noreplace"
],
"result": "success",
"mutation": "durable-host-to-isolated-migration",
"copy": "host-to-isolated-only"
},
{
"id": "cross-route-rename",
"operations": [
"rename",
"rename-noreplace",
"rename-exchange"
],
"result": "EXDEV",
"mutation": "none"
},
{
"id": "rename-whiteout",
"operations": [
"rename-whiteout"
],
"result": "EOPNOTSUPP",
"mutation": "none"
},
{
"id": "cross-route-hard-link",
"operations": [
"link"
],
"result": "EXDEV",
"mutation": "none"
},
{
"id": "ignored-to-host-policy",
"trigger": "next Domain initialization classifies an isolated path as host-backed",
"new_lookups": "host-or-absent",
"isolated_state": "deleted-before-readiness",
"copy": "none"
},
{
"id": "host-to-ignored-policy",
"trigger": "next Domain initialization classifies a host-backed path as ignored",
"new_lookups": "host-clone-or-absent",
"host_state": "retained-unchanged",
"isolated_state": "host-clone-replaces-stale-state",
"copy": "host-to-isolated-only"
},
{
"id": "isolated-to-tracked-guest-publication",
"trigger": "guest index publication tracks an isolated-only path",
"result": "EBUSY",
"index_mutation": "none",
"isolated_state": "retained-visible",
"copy": "none"
}
],
"filesystem_operations": [
{
"operation": "lookup-getattr-readdir",
"host": "supported",
"isolated": "supported",
"cross_route": "not-applicable"
},
{
"operation": "create-mkdir-open-read-write-truncate-fallocate-fsync",
"host": "supported",
"isolated": "supported",
"cross_route": "not-applicable"
},
{
"operation": "unlink-rmdir",
"host": "supported",
"isolated": "supported",
"cross_route": "not-applicable"
},
{
"operation": "rename",
"host": "supported",
"isolated": "supported",
"cross_route": "qualified-host-to-isolated-or-EXDEV"
},
{
"operation": "rename-noreplace",
"host": "supported",
"isolated": "supported",
"cross_route": "qualified-host-to-isolated-or-EXDEV"
},
{
"operation": "rename-exchange",
"host": "supported",
"isolated": "supported",
"cross_route": "EXDEV"
},
{
"operation": "rename-whiteout",
"host": "EOPNOTSUPP",
"isolated": "EOPNOTSUPP",
"cross_route": "EOPNOTSUPP"
},
{
"operation": "hard-link",
"host": "supported",
"isolated": "supported",
"cross_route": "EXDEV"
},
{
"operation": "symlink-readlink",
"host": "supported",
"isolated": "supported",
"cross_route": "virtual-path-resolution"
},
{
"operation": "user-xattrs",
"host": "backing-feature",
"isolated": "backing-feature",
"cross_route": "not-applicable"
},
{
"operation": "posix-acls",
"host": "backing-feature",
"isolated": "backing-feature",
"cross_route": "not-applicable"
},
{
"operation": "sparse-seek-hole-data-punch-hole",
"host": "backing-feature",
"isolated": "backing-feature",
"cross_route": "not-applicable"
},
{
"operation": "copy-file-range",
"host": "supported",
"isolated": "supported",
"cross_route": "EXDEV"
},
{
"operation": "utimens-nanoseconds",
"host": "supported",
"isolated": "supported",
"cross_route": "not-applicable"
},
{
"operation": "mmap-shared-private",
"host": "supported",
"isolated": "supported",
"cross_route": "pinned-open-backing"
},
{
"operation": "flock-posix-record-lock",
"host": "supported",
"isolated": "supported",
"cross_route": "pinned-open-backing"
},
{
"operation": "fifo-unix-socket",
"host": "supported",
"isolated": "supported",
"cross_route": "not-applicable"
},
{
"operation": "character-block-device-create",
"host": "EPERM",
"isolated": "EPERM",
"cross_route": "EPERM"
}
],
"git_compatibility": [
{
"operation": "status-diff",
"support": "supported"
},
{
"operation": "ordinary-add-reset-commit",
"support": "supported-host-backed-paths"
},
{
"operation": "checkout-restore",
"support": "supported"
},
{
"operation": "branch-reference-update",
"support": "supported"
},
{
"operation": "merge-rebase-stash",
"support": "supported"
},
{
"operation": "linked-worktree",
"support": "supported"
},
{
"operation": "nested-repository",
"support": "supported"
},
{
"operation": "force-add-isolated-only",
"support": "EBUSY-before-index-publication"
},
{
"operation": "host-config-write",
"support": "EROFS"
},
{
"operation": "default-hook-host-access",
"support": "sandbox-transient-only"
}
]
}