@cloudflare/sandbox 0.0.0-d1c7c99 → 0.0.0-d81d2a5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/Dockerfile +97 -11
- package/README.md +743 -24
- package/container_src/bun.lock +122 -0
- package/container_src/handler/exec.ts +340 -0
- package/container_src/handler/file.ts +844 -0
- package/container_src/handler/git.ts +182 -0
- package/container_src/handler/ports.ts +314 -0
- package/container_src/handler/process.ts +640 -0
- package/container_src/index.ts +269 -2644
- package/container_src/jupyter-server.ts +336 -0
- package/container_src/mime-processor.ts +255 -0
- package/container_src/package.json +9 -0
- package/container_src/startup.sh +52 -0
- package/container_src/types.ts +108 -0
- package/package.json +5 -9
- package/src/client.ts +331 -1270
- package/src/index.ts +29 -136
- package/src/interpreter-types.ts +383 -0
- package/src/interpreter.ts +150 -0
- package/src/jupyter-client.ts +266 -0
- package/src/request-handler.ts +144 -0
- package/src/sandbox.ts +778 -0
- package/src/security.ts +113 -0
- package/src/sse-parser.ts +147 -0
- package/src/types.ts +401 -0
- package/tsconfig.json +1 -1
- package/tests/client.example.ts +0 -308
- package/tests/connection-test.ts +0 -81
- package/tests/simple-test.ts +0 -81
- package/tests/test1.ts +0 -281
- package/tests/test2.ts +0 -929
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
# @cloudflare/sandbox
|
|
2
2
|
|
|
3
|
+
## 0.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#47](https://github.com/cloudflare/sandbox-sdk/pull/47) [`8a93d0c`](https://github.com/cloudflare/sandbox-sdk/commit/8a93d0cae18a25bda6506b8b0a08d9e9eb3bb290) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Change default directory to a clean /workspace
|
|
8
|
+
|
|
9
|
+
## 0.1.4
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#46](https://github.com/cloudflare/sandbox-sdk/pull/46) [`7de28be`](https://github.com/cloudflare/sandbox-sdk/commit/7de28be482d9634551572d548c7c4b5842df812d) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Update README
|
|
14
|
+
|
|
15
|
+
- [#44](https://github.com/cloudflare/sandbox-sdk/pull/44) [`215ab49`](https://github.com/cloudflare/sandbox-sdk/commit/215ab494427d7e2a92bb9a25384cb493a221c200) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Update example to use env & cwd
|
|
16
|
+
|
|
17
|
+
- [#42](https://github.com/cloudflare/sandbox-sdk/pull/42) [`bb72193`](https://github.com/cloudflare/sandbox-sdk/commit/bb72193ad75695979bd1132206f481e91fe37325) Thanks [@jonasnobile](https://github.com/jonasnobile)! - Propagate `cwd` and `env` options in `executeCommand`
|
|
18
|
+
|
|
19
|
+
- [#27](https://github.com/cloudflare/sandbox-sdk/pull/27) [`fd5ec7f`](https://github.com/cloudflare/sandbox-sdk/commit/fd5ec7f34bc12b06320a89356c4af07801f52d64) Thanks [@threepointone](https://github.com/threepointone)! - remove yarn and pnpm from the image
|
|
20
|
+
|
|
21
|
+
## 0.1.3
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#32](https://github.com/cloudflare/sandbox-sdk/pull/32) [`1a42464`](https://github.com/cloudflare/sandbox-sdk/commit/1a4246479369c5d0160705caf192aa1816540d52) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Bring back package README
|
|
26
|
+
|
|
27
|
+
## 0.1.2
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- [#30](https://github.com/cloudflare/sandbox-sdk/pull/30) [`30e5c25`](https://github.com/cloudflare/sandbox-sdk/commit/30e5c25cf7d4b07f9049724206c531e2d5d29d5c) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Remove actions timeout
|
|
32
|
+
|
|
33
|
+
- [#29](https://github.com/cloudflare/sandbox-sdk/pull/29) [`d78508f`](https://github.com/cloudflare/sandbox-sdk/commit/d78508f7287a59e0423edd2999c2c83e9e34ccfd) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Create multi-platform Docker image and switch to Cloudflare official repo
|
|
34
|
+
|
|
35
|
+
## 0.1.1
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- [`157dde9`](https://github.com/cloudflare/sandbox-sdk/commit/157dde9b1f23e9bb6f3e9c3f0514b639a8813897) Thanks [@threepointone](https://github.com/threepointone)! - update deps
|
|
40
|
+
|
|
41
|
+
- [`a04f6b6`](https://github.com/cloudflare/sandbox-sdk/commit/a04f6b6c0b2ef9e3ce0851b53769f1c10d8c6de6) Thanks [@threepointone](https://github.com/threepointone)! - trigger a build with updated deps
|
|
42
|
+
|
|
43
|
+
## 0.1.0
|
|
44
|
+
|
|
45
|
+
### Minor Changes
|
|
46
|
+
|
|
47
|
+
- [#24](https://github.com/cloudflare/sandbox-sdk/pull/24) [`cecde0a`](https://github.com/cloudflare/sandbox-sdk/commit/cecde0a7530a87deffd8562fb8b01d66ee80ee19) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Redesign command execution API
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- [#22](https://github.com/cloudflare/sandbox-sdk/pull/22) [`f5fcd52`](https://github.com/cloudflare/sandbox-sdk/commit/f5fcd52025d1f7958a374e69d75e3fc590275f3f) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - Allow setting env variables dynamically and remove command restrictions
|
|
52
|
+
|
|
53
|
+
## 0.0.9
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- [#20](https://github.com/cloudflare/sandbox-sdk/pull/20) [`f106fda`](https://github.com/cloudflare/sandbox-sdk/commit/f106fdac98e7ef35677326290d45cbf3af88982c) Thanks [@ghostwriternr](https://github.com/ghostwriternr)! - add preview URLs and dynamic port forwarding
|
|
58
|
+
|
|
59
|
+
## 0.0.8
|
|
60
|
+
|
|
61
|
+
### Patch Changes
|
|
62
|
+
|
|
63
|
+
- [`60af265`](https://github.com/cloudflare/sandbox-sdk/commit/60af265d834e83fd30a921a3e1be232f13fe24da) Thanks [@threepointone](https://github.com/threepointone)! - update dependencies
|
|
64
|
+
|
|
65
|
+
## 0.0.7
|
|
66
|
+
|
|
67
|
+
### Patch Changes
|
|
68
|
+
|
|
69
|
+
- [`d1c7c99`](https://github.com/cloudflare/sandbox-sdk/commit/d1c7c99df6555eff71bcd59852e4b8eed2ad8cb6) Thanks [@threepointone](https://github.com/threepointone)! - fix file operations
|
|
70
|
+
|
|
3
71
|
## 0.0.6
|
|
4
72
|
|
|
5
73
|
### Patch Changes
|
package/Dockerfile
CHANGED
|
@@ -1,16 +1,102 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Sandbox base image with development tools, Python, Node.js, and Bun
|
|
2
|
+
FROM oven/bun:latest AS bun-source
|
|
3
|
+
FROM ubuntu:22.04
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
WORKDIR /app
|
|
5
|
+
# Prevent interactive prompts during package installation
|
|
6
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
6
7
|
|
|
7
|
-
# Install
|
|
8
|
-
RUN apt-get update && apt-get install -y
|
|
8
|
+
# Install essential system packages and development tools
|
|
9
|
+
RUN apt-get update && apt-get install -y \
|
|
10
|
+
# Basic utilities
|
|
11
|
+
curl \
|
|
12
|
+
wget \
|
|
13
|
+
git \
|
|
14
|
+
unzip \
|
|
15
|
+
zip \
|
|
16
|
+
# Process management
|
|
17
|
+
procps \
|
|
18
|
+
htop \
|
|
19
|
+
# Build tools
|
|
20
|
+
build-essential \
|
|
21
|
+
pkg-config \
|
|
22
|
+
# Network tools
|
|
23
|
+
net-tools \
|
|
24
|
+
iputils-ping \
|
|
25
|
+
dnsutils \
|
|
26
|
+
# Text processing
|
|
27
|
+
jq \
|
|
28
|
+
vim \
|
|
29
|
+
nano \
|
|
30
|
+
# Python dependencies
|
|
31
|
+
python3.11 \
|
|
32
|
+
python3.11-dev \
|
|
33
|
+
python3-pip \
|
|
34
|
+
python3.11-venv \
|
|
35
|
+
# Other useful tools
|
|
36
|
+
sudo \
|
|
37
|
+
ca-certificates \
|
|
38
|
+
gnupg \
|
|
39
|
+
lsb-release \
|
|
40
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
9
41
|
|
|
10
|
-
|
|
11
|
-
|
|
42
|
+
# Set Python 3.11 as default python3
|
|
43
|
+
RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
|
|
12
44
|
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
|
|
45
|
+
# Install Node.js 20 LTS
|
|
46
|
+
# Using the official NodeSource repository setup script
|
|
47
|
+
RUN apt-get update && apt-get install -y ca-certificates curl gnupg \
|
|
48
|
+
&& mkdir -p /etc/apt/keyrings \
|
|
49
|
+
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
|
50
|
+
&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
|
|
51
|
+
&& apt-get update \
|
|
52
|
+
&& apt-get install -y nodejs \
|
|
53
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
16
54
|
|
|
55
|
+
# Install Bun from official image (avoids architecture compatibility issues)
|
|
56
|
+
COPY --from=bun-source /usr/local/bin/bun /usr/local/bin/bun
|
|
57
|
+
COPY --from=bun-source /usr/local/bin/bunx /usr/local/bin/bunx
|
|
58
|
+
|
|
59
|
+
# Install Jupyter and kernels
|
|
60
|
+
RUN pip3 install --no-cache-dir \
|
|
61
|
+
jupyter \
|
|
62
|
+
jupyterlab \
|
|
63
|
+
ipykernel \
|
|
64
|
+
notebook \
|
|
65
|
+
matplotlib \
|
|
66
|
+
numpy \
|
|
67
|
+
pandas \
|
|
68
|
+
seaborn \
|
|
69
|
+
&& python3 -m ipykernel install --user --name python3
|
|
70
|
+
|
|
71
|
+
# Install JavaScript kernel (ijavascript) - using E2B's fork
|
|
72
|
+
RUN npm install -g --unsafe-perm git+https://github.com/e2b-dev/ijavascript.git \
|
|
73
|
+
&& ijsinstall --install=global
|
|
74
|
+
|
|
75
|
+
# Set up container server directory
|
|
76
|
+
WORKDIR /container-server
|
|
77
|
+
|
|
78
|
+
# Verify installations
|
|
79
|
+
RUN python3 --version && \
|
|
80
|
+
node --version && \
|
|
81
|
+
npm --version && \
|
|
82
|
+
bun --version && \
|
|
83
|
+
jupyter --version && \
|
|
84
|
+
jupyter kernelspec list
|
|
85
|
+
|
|
86
|
+
# Copy container source files to server directory
|
|
87
|
+
COPY container_src/package.json ./
|
|
88
|
+
RUN bun install
|
|
89
|
+
|
|
90
|
+
COPY container_src/ ./
|
|
91
|
+
|
|
92
|
+
# Create clean workspace directory for users
|
|
93
|
+
RUN mkdir -p /workspace
|
|
94
|
+
|
|
95
|
+
# Expose the application port (3000 for control, 8888 for Jupyter)
|
|
96
|
+
EXPOSE 3000 8888
|
|
97
|
+
|
|
98
|
+
# Make startup script executable
|
|
99
|
+
RUN chmod +x startup.sh
|
|
100
|
+
|
|
101
|
+
# Use startup script
|
|
102
|
+
CMD ["./startup.sh"]
|