Tomas Valenta
1203ccbad3
Add MCP experimental feature to beta ( #936 )
...
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> Adds beta MCP support to JS/Python SDKs with template auto-selection,
config POST, MCP URL helpers, and codegen for MCP types/schemas.
>
> - **SDKs (Beta MCP support)**:
> - **JS SDK**:
> - Add `McpServer` types and export; extend `Sandbox.betaCreate` with
`mcp` option that auto-selects `mcp-gateway-v0`, configures MCP via POST
`/config` on port `50005` with retries, and expose `betaGetMcpUrl()`.
> - Add `wait(ms)` util; generate MCP types from `spec/mcp-server.json`;
new `generate:mcp` script and dev dep `json-schema-to-typescript`.
> - **Python SDK**:
> - Generate and export `McpServer` (TypedDict); extend sync/async
`beta_create` with `mcp` option, auto-select default MCP template, POST
MCP config with retries, and add `beta_get_mcp_url()`; define `mcp_port`
and `default_mcp_template`.
> - Makefile: add `generate-mcp` target; include
`datamodel-code-generator` in tooling; update lockfile/pyproject deps.
> - **Tooling**:
> - Add `spec/mcp-server.json` schema; update codegen Dockerfile to
install `datamodel-code-generator`.
> -
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot ) for commit
cf3f175d310d4c242cd2e867efd801f5c04f2099. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot ).</sup>
<!-- /CURSOR_SUMMARY -->
---------
Co-authored-by: Jonas Scholz <Jonas.Scholz@bbscholz.de >
2025-10-09 08:37:32 +00:00
github-actions[bot]
d7bc0a31d4
[skip ci] Release new versions
2025-10-08 23:00:33 +00:00
github-actions[bot]
fb6dd8303f
[skip ci] Release new versions
2025-10-08 01:00:08 +00:00
Tomas Valenta
f5cfa6d897
Update node version in SDK and CLI ( #935 )
2025-10-08 00:46:01 +00:00
github-actions[bot]
c4ce97e9b9
[skip ci] Release new versions
2025-10-01 12:45:57 +00:00
github-actions[bot]
25526ff928
[skip ci] Release new versions
2025-09-29 12:53:44 +00:00
Jakub Dobry
2ec9ea8a44
feat: add template init for new template SDK ( #881 )
2025-09-26 06:40:58 -07:00
github-actions[bot]
138f85dd07
[skip ci] Release new versions
2025-09-19 19:03:53 +00:00
Jakub Dobry
b9c4b16baa
feat: add template migration to CLI ( #880 )
...
## 🔄 Add Template Migration to CLI
### Summary
This PR introduces a new `migrate` command to the E2B CLI that helps
users transition from the legacy Dockerfile + TOML configuration format
to the new Template SDK format. The migration tool automatically
converts existing `e2b.Dockerfile` and `e2b.toml` configurations into
SDK-compatible template files using Handlebars templates.
### What's Changed
#### ✨ New Features
- **Template Migration Command**: Added `e2b template migrate` command
for converting legacy configurations to SDK format
- **Multi-Language Support**: Supports migration to TypeScript, Python
(sync), and Python (async) formats
- **Interactive Language Selection**: CLI prompts for target language
when not specified
- **Multi-stage Dockerfile Support**: Added fallback handling for
complex multi-stage Dockerfiles
#### 🔧 Technical Improvements
- **Enhanced ENV Handling**: Improved parsing of multiple environment
variables from single ENV instructions
- **File Name Conflict Resolution**: Automatic unique filename
generation to prevent overwriting existing files
- **Comprehensive Template Generation**: Creates both development and
production build files
#### 📁 New Template Files
- `typescript-template.hbs` - TypeScript template generation
- `typescript-build.hbs` - TypeScript build script template
- `python-template.hbs` - Python template generation (supports both
sync/async)
- `python-build-async.hbs` - Python async build script template
- `python-build-sync.hbs` - Python sync build script template
### Usage
```bash
# Migrate with interactive language selection
e2b template migrate
# Migrate to specific language
e2b template migrate --language typescript
e2b template migrate --language python-sync
e2b template migrate --language python-async
# Custom paths
e2b template migrate --dockerfile custom.dockerfile --config custom.toml
```
### Generated Output
The migration command generates three files per target:
- `template.{ts|py}` - Template definition using SDK
- `build{.|_}dev.{ts|py}` - Development build script
- `build{.|_}prod.{ts|py}` - Production build script
### Migration Process
1. **Parse Configuration**: Reads `e2b.toml` for template settings
2. **Dockerfile Analysis**: Uses E2B SDK to parse Dockerfile
instructions
3. **Transformation**: Converts Docker instructions to SDK method calls
4. **Code Generation**: Uses Handlebars templates to generate target
language files
5. **File Creation**: Writes template and build files with conflict
resolution
### Error Handling
- **Graceful Dockerfile Parsing**: Falls back to custom image reference
for unparseable Dockerfiles
- **Clear User Guidance**: Provides manual build instructions when
automatic conversion fails
- **Validation**: Ensures required configuration files exist before
migration
2025-09-19 17:41:28 +02:00
github-actions[bot]
8255ba42c0
[skip ci] Release new versions
2025-09-19 10:40:39 +00:00
github-actions[bot]
9cbcaa40c4
[skip ci] Release new versions
2025-09-09 19:57:39 +00:00
dependabot[bot]
50b9c92498
Bump the npm_and_yarn group across 2 directories with 1 update ( #789 )
...
Bumps the npm_and_yarn group with 1 update in the / directory:
[next](https://github.com/vercel/next.js ).
Bumps the npm_and_yarn group with 1 update in the /apps/web directory:
[next](https://github.com/vercel/next.js ).
Updates `next` from 14.2.26 to 14.2.30
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases ">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.30</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Backport <code>config.allowedDevOrigins</code> (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)
(<a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins ">Learn
More</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> and <a
href="https://github.com/ztanner "><code>@ztanner</code></a> for
helping!</p>
<h2>v14.2.29</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> for helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/243072b7a8b7fb3be74a8d9256847669b131ea7e "><code>243072b</code></a>
v14.2.30</li>
<li><a
href="https://github.com/vercel/next.js/commit/f523d4a142913fa9f9f743241cc6132a39f6883b "><code>f523d4a</code></a>
[backport]: config.allowedDevOrigins (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/ca9211576c9a21c15980dcc6f022c2cd21542561 "><code>ca92115</code></a>
v14.2.29</li>
<li><a
href="https://github.com/vercel/next.js/commit/ec9ee8749e9c6820148ead09a20983afd7ba9482 "><code>ec9ee87</code></a>
Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/e65628a237ea76d77d911aedb12d5137fddd90fb "><code>e65628a</code></a>
v14.2.28</li>
<li><a
href="https://github.com/vercel/next.js/commit/3f5d77418da40d1e7766cbf46668dae0db268776 "><code>3f5d774</code></a>
fix: node.js module import error when using middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/77945 ">#77945</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/43f10b8ead008ba36ddf0a955353949e200c409a "><code>43f10b8</code></a>
v14.2.27</li>
<li><a
href="https://github.com/vercel/next.js/commit/649ba863b3ea92436ff1136231d38138535853a9 "><code>649ba86</code></a>
backport: fix dynamic route interception not working when deployed with
middl...</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.26...v14.2.30 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `next` from 14.2.26 to 14.2.30
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases ">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.30</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Backport <code>config.allowedDevOrigins</code> (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)
(<a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins ">Learn
More</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> and <a
href="https://github.com/ztanner "><code>@ztanner</code></a> for
helping!</p>
<h2>v14.2.29</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> for helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/243072b7a8b7fb3be74a8d9256847669b131ea7e "><code>243072b</code></a>
v14.2.30</li>
<li><a
href="https://github.com/vercel/next.js/commit/f523d4a142913fa9f9f743241cc6132a39f6883b "><code>f523d4a</code></a>
[backport]: config.allowedDevOrigins (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/ca9211576c9a21c15980dcc6f022c2cd21542561 "><code>ca92115</code></a>
v14.2.29</li>
<li><a
href="https://github.com/vercel/next.js/commit/ec9ee8749e9c6820148ead09a20983afd7ba9482 "><code>ec9ee87</code></a>
Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/e65628a237ea76d77d911aedb12d5137fddd90fb "><code>e65628a</code></a>
v14.2.28</li>
<li><a
href="https://github.com/vercel/next.js/commit/3f5d77418da40d1e7766cbf46668dae0db268776 "><code>3f5d774</code></a>
fix: node.js module import error when using middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/77945 ">#77945</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/43f10b8ead008ba36ddf0a955353949e200c409a "><code>43f10b8</code></a>
v14.2.27</li>
<li><a
href="https://github.com/vercel/next.js/commit/649ba863b3ea92436ff1136231d38138535853a9 "><code>649ba86</code></a>
backport: fix dynamic route interception not working when deployed with
middl...</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.26...v14.2.30 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `next` from 14.2.26 to 14.2.30
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases ">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.30</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Backport <code>config.allowedDevOrigins</code> (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)
(<a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins ">Learn
More</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> and <a
href="https://github.com/ztanner "><code>@ztanner</code></a> for
helping!</p>
<h2>v14.2.29</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> for helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/243072b7a8b7fb3be74a8d9256847669b131ea7e "><code>243072b</code></a>
v14.2.30</li>
<li><a
href="https://github.com/vercel/next.js/commit/f523d4a142913fa9f9f743241cc6132a39f6883b "><code>f523d4a</code></a>
[backport]: config.allowedDevOrigins (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/ca9211576c9a21c15980dcc6f022c2cd21542561 "><code>ca92115</code></a>
v14.2.29</li>
<li><a
href="https://github.com/vercel/next.js/commit/ec9ee8749e9c6820148ead09a20983afd7ba9482 "><code>ec9ee87</code></a>
Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/e65628a237ea76d77d911aedb12d5137fddd90fb "><code>e65628a</code></a>
v14.2.28</li>
<li><a
href="https://github.com/vercel/next.js/commit/3f5d77418da40d1e7766cbf46668dae0db268776 "><code>3f5d774</code></a>
fix: node.js module import error when using middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/77945 ">#77945</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/43f10b8ead008ba36ddf0a955353949e200c409a "><code>43f10b8</code></a>
v14.2.27</li>
<li><a
href="https://github.com/vercel/next.js/commit/649ba863b3ea92436ff1136231d38138535853a9 "><code>649ba86</code></a>
backport: fix dynamic route interception not working when deployed with
middl...</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.26...v14.2.30 ">compare
view</a></li>
</ul>
</details>
<br />
Updates `next` from 14.2.26 to 14.2.30
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vercel/next.js/releases ">next's
releases</a>.</em></p>
<blockquote>
<h2>v14.2.30</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Backport <code>config.allowedDevOrigins</code> (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)
(<a
href="https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins ">Learn
More</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> and <a
href="https://github.com/ztanner "><code>@ztanner</code></a> for
helping!</p>
<h2>v14.2.29</h2>
<blockquote>
<p>[!NOTE]<br />
This release is backporting bug fixes. It does <strong>not</strong>
include all pending features/changes on canary.</p>
</blockquote>
<h3>Core Changes</h3>
<ul>
<li>Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
</ul>
<h3>Credits</h3>
<p>Huge thanks to <a
href="https://github.com/ijjk "><code>@ijjk</code></a> for helping!</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vercel/next.js/commit/243072b7a8b7fb3be74a8d9256847669b131ea7e "><code>243072b</code></a>
v14.2.30</li>
<li><a
href="https://github.com/vercel/next.js/commit/f523d4a142913fa9f9f743241cc6132a39f6883b "><code>f523d4a</code></a>
[backport]: config.allowedDevOrigins (<a
href="https://redirect.github.com/vercel/next.js/issues/80410 ">#80410</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/ca9211576c9a21c15980dcc6f022c2cd21542561 "><code>ca92115</code></a>
v14.2.29</li>
<li><a
href="https://github.com/vercel/next.js/commit/ec9ee8749e9c6820148ead09a20983afd7ba9482 "><code>ec9ee87</code></a>
Only share incremental cache for edge in next start (<a
href="https://redirect.github.com/vercel/next.js/issues/79389 ">#79389</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/e65628a237ea76d77d911aedb12d5137fddd90fb "><code>e65628a</code></a>
v14.2.28</li>
<li><a
href="https://github.com/vercel/next.js/commit/3f5d77418da40d1e7766cbf46668dae0db268776 "><code>3f5d774</code></a>
fix: node.js module import error when using middleware (<a
href="https://redirect.github.com/vercel/next.js/issues/77945 ">#77945</a>)</li>
<li><a
href="https://github.com/vercel/next.js/commit/43f10b8ead008ba36ddf0a955353949e200c409a "><code>43f10b8</code></a>
v14.2.27</li>
<li><a
href="https://github.com/vercel/next.js/commit/649ba863b3ea92436ff1136231d38138535853a9 "><code>649ba86</code></a>
backport: fix dynamic route interception not working when deployed with
middl...</li>
<li>See full diff in <a
href="https://github.com/vercel/next.js/compare/v14.2.26...v14.2.30 ">compare
view</a></li>
</ul>
</details>
<br />
You can trigger a rebase of this PR by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/e2b-dev/E2B/network/alerts ).
</details>
> **Note**
> Automatic rebases have been disabled on this pull request as it has
been open for over 30 days.
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-09 01:52:32 -07:00
github-actions[bot]
448beca40c
[skip ci] Release new versions
2025-09-08 05:23:08 +00:00
Mish Ushakov
44365999e1
Vendor strip-ansi npm module to avoid ESM-related issues ( #895 )
...
- Fixes #894
2025-09-08 08:17:25 +03:00
github-actions[bot]
bee91610dc
[skip ci] Release new versions
2025-09-06 10:58:21 +00:00
github-actions[bot]
9d82bd60fc
[skip ci] Release new versions
2025-09-05 20:06:19 +00:00
Mish Ushakov
4a2a6c7051
Add Templates SDK ( #871 )
...
### Merge Templates SDK into E2B SDK.
This PR merges code from Templates SDK to E2B SDK.
**Changelog**
- Added new error classes: BuildError, FileUploadError.
- Added template API endpoints to API Client generation (Python).
- Updated API Clients error handling to throw BuildError in addition to
SandboxError.
- Exported Template and TemplateAsync classes.
- Moved `getRuntime` utility method from api to utils.
- Browser is supported except file operations (COPY). Incompatible
modules are not bundled, using dynamic imports (tar, glob) in supported
environments (Node, Deno, Bun) instead.
- Basic tests were added, subject to expansion in a follow-up PR.
- Breaking: Before, 401 error was raising `SandboxError`, which was
incorrect, now it will raise `AuthenticationError`. I have also changed
the `AuthenticationError` to extend Error class, not `SandboxError`
anymore as it's now thrown by both Sandbox and Template.
**Usage**
JavaScript
```js
import { Template } from 'e2b';
const template = Template()
.fromImage('ubuntu:22.04')
.copy('folder/*.txt', 'folder', { forceUpload: true })
.setEnvs({
ENV_1: 'value1',
ENV_2: 'value2',
})
.runCmd('cat folder/test.txt')
.setWorkdir('/app')
.setStartCmd('echo "Hello, world!"', Template.waitForTimeout('10s'))
await Template.build(template, {
alias: 'test-template',
cpuCount: 1,
memoryMB: 1024,
onBuildLogs: (logEntry) => console.log(logEntry.toString()),
})
```
Python
```py
from e2b import Template
template = (
Template()
.from_image("ubuntu:22.04")
.copy("folder/*.txt", "folder", force_upload=True)
.set_envs(
{
"ENV_1": "value1",
"ENV_2": "value2",
}
)
.run_cmd("cat folder/test.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", Template.wait_for_timeout("10s"))
)
Template.build(
template,
alias="test-template",
cpu_count=1,
memory_mb=1024,
on_build_logs=lambda log_entry: print(log_entry),
)
```
Python Async
```py
from e2b import AsyncTemplate
template = (
AsyncTemplate()
.from_image("ubuntu:22.04")
.copy("folder/*.txt", "folder", force_upload=True)
.set_envs(
{
"ENV_1": "value1",
"ENV_2": "value2",
}
)
.run_cmd("cat folder/test.txt")
.set_workdir("/app")
.set_start_cmd("echo 'Hello, world!'", Template.wait_for_timeout("10s"))
)
await AsyncTemplate.build(
template,
alias="test-template",
cpu_count=1,
memory_mb=1024,
on_build_logs=lambda log_entry: print(log_entry),
)
```
---
Merge progress
- [x] JavaScript SDK
- [x] Python SDK
- [x] Tests
- [x] Split files for review
2025-09-05 22:00:22 +02:00
github-actions[bot]
2162c6191f
[skip ci] Release new versions
2025-09-03 12:49:17 +00:00
github-actions[bot]
787a3192ce
[skip ci] Release new versions
2025-09-03 12:01:10 +00:00
github-actions[bot]
4eb3a2d322
[skip ci] Release new versions
2025-08-21 20:08:42 +00:00
github-actions[bot]
774dfd7667
[skip ci] Release new versions
2025-08-21 15:51:16 +00:00
github-actions[bot]
e140ec3717
[skip ci] Release new versions
2025-08-06 21:14:31 +00:00
github-actions[bot]
7540839268
[skip ci] Release new versions
2025-08-06 10:32:14 +00:00
github-actions[bot]
9d2b3c92a7
[skip ci] Release new versions
2025-08-04 12:40:16 +00:00
0div
4d7eda4f51
Sort SDK version for dropdown using semver package ( #839 )
...
Sorting the versions lexicographically was not ordering by latest
correctly, now using `semver` package to sort them:
```ts
> versions = [
'1.9.0', '1.8.0',
'1.7.0', '1.6.0',
'1.5.0', '1.4.0',
'1.3.0', '1.2.0',
'1.12.0', '1.11.0',
'1.10.0', '1.1.0',
'1.0.0'
]
> versions.sort((a, b) => semver.rcompare(a, b))
[
'1.12.0', '1.11.0',
'1.10.0', '1.9.0',
'1.8.0', '1.7.0',
'1.6.0', '1.5.0',
'1.4.0', '1.3.0',
'1.2.0', '1.1.0',
'1.0.0'
]
```
2025-07-31 14:01:15 -07:00
github-actions[bot]
115407cf1e
[skip ci] Release new versions
2025-07-31 09:44:55 +00:00
github-actions[bot]
76d62ed070
[skip ci] Release new versions
2025-07-30 19:25:33 +00:00
github-actions[bot]
7f26f5536e
[skip ci] Release new versions
2025-07-29 10:44:36 +00:00
github-actions[bot]
37d69be891
[skip ci] Release new versions
2025-07-28 15:23:07 +00:00
Jakub Novák
706ebd9af8
Fix generating files with docker ( #829 )
...
# Description
Fixes an issue in generating files in Docker. There has been an
incompatibility of `buf` (version `29.5`) and `protoc-gen-es` (version
`2.2.2`).
I updated `protoc-gen-es@` to `2.6.2`
Also refactored the code a little so it's easier to read
Added a CI pipeline job to check all files are properly generated
2025-07-28 13:47:26 +02:00
Jakub Novák
3b26f71b44
Update dependencies ( #824 )
...
# Description
Fixes:
https://github.com/e2b-dev/E2B/security/dependabot/184
https://github.com/e2b-dev/E2B/security/dependabot/182
https://github.com/e2b-dev/E2B/security/dependabot/178
https://github.com/e2b-dev/E2B/security/dependabot/183
https://github.com/e2b-dev/E2B/security/dependabot/176
https://github.com/e2b-dev/E2B/security/dependabot/175
https://github.com/e2b-dev/E2B/security/dependabot/174
https://github.com/e2b-dev/E2B/security/dependabot/173
2025-07-24 06:21:03 -07:00
github-actions[bot]
e7538fb5cc
[skip ci] Release new versions
2025-07-18 11:20:02 +00:00
github-actions[bot]
5f207ffa95
[skip ci] Release new versions
2025-07-17 13:16:31 +00:00
github-actions[bot]
9704e2ff03
[skip ci] Release new versions
2025-06-24 17:08:34 +00:00
github-actions[bot]
884e6b3917
[skip ci] Release new versions
2025-06-23 16:58:16 +00:00
github-actions[bot]
40c73100bc
[skip ci] Release new versions
2025-06-20 02:52:52 +00:00
Jakub Novák
4b85063919
Update deps ( #788 )
...
# Description
Fixes:
- https://github.com/e2b-dev/E2B/security/dependabot/169
- https://github.com/e2b-dev/E2B/security/dependabot/168
- https://github.com/e2b-dev/E2B/security/dependabot/164
2025-06-19 17:06:43 -07:00
github-actions[bot]
4aaeee2af4
[skip ci] Release new versions
2025-06-13 11:03:18 +00:00
Jakub Dobry
e244ba72c0
Add option for a template ready check ( #750 )
...
## Description
Add option for a template ready check. You can specify `ready_cmd` which
will be run until it exits with code 0. Max timeout is 5 minutes. After
exit code 0, the template will be marked as ready.
If no ready command is defined, `sleep 20` is assumed when the start
command is present, and `sleep 0` when none is defined. It is also
possible to define ready command without any start command. This might
be helpful if the filesystem contains self-booted services (e.g. using
systemd).
```
ready_cmd = "echo 'Starting ready check'; sleep 40; echo 'Template is ready'"
```
This adds possibility to configure the default 20 seconds wait time for
a start command.
New documentation can be found at `/docs/sandbox-template/ready-cmd`.
## Checklist
- [x] Make sure the https://github.com/e2b-dev/infra/pull/719 is
deployed
---------
Co-authored-by: Vasek Mlejnsky <vasek@e2b.dev >
Co-authored-by: Jakub Novák <jakub@e2b.dev >
2025-06-12 17:42:37 -07:00
github-actions[bot]
6c0927e358
[skip ci] Release new versions
2025-06-05 14:15:25 +00:00
Mish Ushakov
b21f86c543
Added lint workflow for JS, Python SDKs ( #759 )
...
- Linted all existing files
- Added GitHub workflow to check everything is linted correctly
2025-06-05 14:52:48 +02:00
github-actions[bot]
f1afba0d74
[skip ci] Release new versions
2025-06-03 10:13:57 +00:00
Jakub Novák
2ab29f8fd0
[Dependencies] Update Vite ( #751 )
...
# Description
Fixes:
https://github.com/e2b-dev/E2B/security/dependabot/162
https://github.com/e2b-dev/E2B/security/dependabot/164
2025-06-02 02:49:47 -07:00
github-actions[bot]
286e70d689
[skip ci] Release new versions
2025-05-14 15:19:57 +00:00
Jakub Novák
3b87ed9087
Update dependencies ( #720 )
...
# Description
Fixes:
https://github.com/e2b-dev/E2B/security/dependabot/149
https://github.com/e2b-dev/E2B/security/dependabot/150
2025-05-12 20:35:21 +00:00
github-actions[bot]
41f42a1490
[skip ci] Release new versions
2025-05-05 16:34:23 +00:00
github-actions[bot]
5cb2edc0d1
[skip ci] Release new versions
2025-04-29 15:28:51 +00:00
Jakub Novák
4ec6c82630
Security patches ( #706 )
...
# Description
Fixes:
https://github.com/e2b-dev/E2B/security/dependabot/163
https://github.com/e2b-dev/E2B/security/dependabot/157
https://github.com/e2b-dev/E2B/security/dependabot/156
https://github.com/e2b-dev/E2B/security/dependabot/148
https://github.com/e2b-dev/E2B/security/dependabot/147
2025-04-29 02:41:14 -07:00
github-actions[bot]
2822c7bec0
[skip ci] Release new versions
2025-04-10 16:09:43 +00:00
Jakub Novák
2aada562d1
Update esbuild to 0.25.0 ( #673 )
...
# Description
https://github.com/e2b-dev/E2B/security/dependabot/147
2025-04-07 15:54:56 +02:00