221 lines
5.4 KiB
JSON
221 lines
5.4 KiB
JSON
{
|
|
"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"
|
|
}
|
|
]
|
|
}
|