@e2b/python-sdk@2.28.0
Minor Changes
-
961ffba: feat(sdks): expose user-defined file metadata on
sandbox.filesAdds a
metadataoption to file uploads (write/writeFiles/write_files) and surfaces persisted metadata on everyEntryInfo/WriteInforeturned bygetInfo,list,rename, and write responses. On upload, metadata is sent asX-Metadata-<key>: <value>request headers; envd persists the values as extended attributes in theuser.e2b.xattr namespace and returns them on subsequent filesystem reads (includinguser.e2b.*xattrs set out-of-band). Keys are sent as HTTP header names and are lowercased by the sandbox; metadata is validated client-side (keys must be valid HTTP header tokens, values must be printable US-ASCII) and invalid input raisesInvalidArgumentError/InvalidArgumentException. The same metadata map is applied to every file in a multi-file upload. Requires envd 0.6.2 or later. -
da85b1e: Add an
includeEntry/include_entryoption to filesystem directory watching. When enabled, eachFilesystemEventcarries the affected entry'sEntryInfo(best-effort; left unset for events where the path no longer exists, such as remove/rename-away). Requires envd 0.6.3 or later; watching with this option against an older sandbox raises a template error.
Patch Changes
-
7dc861f: fix: align behavior between the JS and Python SDKs
Python SDK:
commands.send_stdinandCommandHandle.send_stdinnow acceptbytesin addition tostr, and the handle'ssend_stdin/close_stdinnow accept arequest_timeout.git.resetnow accepts a typedGitResetModeand its validation error matches the JS SDK wording/ordering.GitResetModeis now exported.sandbox_urlis now propagated throughget_api_params.Template.from_image()now raises when only one ofusername/passwordis provided.get_info()no longer carries the envd access token on the returnedSandboxInfo(the_envd_access_tokenfield was unused), matching the JS SDK which strips it fromgetInfo.get_metrics()now raisesTemplateException(wasSandboxException) with the same message as the JS SDK when the sandbox is too old.
JS SDK:
Sandbox.getInfo()now includessandboxDomain, matching the Python SDK's singleget_info.getFullInfois deprecated and now just wrapsgetInfo(it no longer returns the envd access token).Sandbox.getMetrics()now returns[]in debug mode, matching the Python SDK. The debug short-circuit forgetMetrics/killis implemented on both the instance and static methods, so it applies consistently whether called asSandbox.kill(sandboxId)orsandbox.kill().Template.fromImage()now requires bothusernameandpasswordwhen registry credentials are provided.Template.getBuildStatus()now defaultslogsOffsetto0.requestTimeoutMs: 0now explicitly disables the request timeout.getMetrics()now throwsTemplateError(wasSandboxError) when the sandbox is too old to support metrics.