├── .github └── workflows │ ├── build.yml │ └── publish.yml ├── .goreleaser.yaml ├── LICENSE ├── Makefile ├── README.md ├── cmd └── main.go ├── codapi-cli ├── codapi.json ├── codapi.service ├── docs ├── add-sandbox.md ├── api.md ├── docker-xfs.md ├── install.md ├── nginx.md ├── production.md └── update.md ├── go.mod ├── go.sum ├── internal ├── config │ ├── config.go │ ├── config_test.go │ ├── load.go │ ├── load_test.go │ └── testdata │ │ ├── codapi.json │ │ └── sandboxes │ │ ├── alpine │ │ └── box.json │ │ └── python │ │ ├── box.json │ │ └── commands.json ├── engine │ ├── docker.go │ ├── docker_test.go │ ├── engine.go │ ├── engine_test.go │ ├── exec.go │ ├── exec_test.go │ ├── http.go │ ├── http_test.go │ ├── io.go │ ├── io_test.go │ └── testdata │ │ └── example.txt ├── execy │ ├── execy.go │ ├── execy_test.go │ ├── mock.go │ └── mock_test.go ├── fileio │ ├── fileio.go │ ├── fileio_test.go │ └── testdata │ │ ├── invalid.json │ │ └── valid.json ├── httpx │ ├── httpx.go │ ├── httpx_test.go │ ├── mock.go │ ├── mock_test.go │ └── testdata │ │ ├── example.json │ │ └── example.txt ├── logx │ ├── logx.go │ ├── logx_test.go │ ├── memory.go │ └── memory_test.go ├── sandbox │ ├── config.go │ ├── config_test.go │ ├── sandbox.go │ ├── sandbox_test.go │ ├── semaphore.go │ └── semaphore_test.go ├── server │ ├── io.go │ ├── io_test.go │ ├── middleware.go │ ├── middleware_test.go │ ├── router.go │ ├── router_test.go │ ├── server.go │ └── server_test.go └── stringx │ ├── stringx.go │ └── stringx_test.go └── sandboxes └── ash ├── Dockerfile ├── box.json └── commands.json /.github/workflows/build.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/.github/workflows/build.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.goreleaser.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/.goreleaser.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/README.md -------------------------------------------------------------------------------- /cmd/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/cmd/main.go -------------------------------------------------------------------------------- /codapi-cli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/codapi-cli -------------------------------------------------------------------------------- /codapi.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/codapi.json -------------------------------------------------------------------------------- /codapi.service: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/codapi.service -------------------------------------------------------------------------------- /docs/add-sandbox.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/add-sandbox.md -------------------------------------------------------------------------------- /docs/api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/api.md -------------------------------------------------------------------------------- /docs/docker-xfs.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/docker-xfs.md -------------------------------------------------------------------------------- /docs/install.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/install.md -------------------------------------------------------------------------------- /docs/nginx.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/nginx.md -------------------------------------------------------------------------------- /docs/production.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/production.md -------------------------------------------------------------------------------- /docs/update.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/docs/update.md -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/go.sum -------------------------------------------------------------------------------- /internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/config.go -------------------------------------------------------------------------------- /internal/config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/config_test.go -------------------------------------------------------------------------------- /internal/config/load.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/load.go -------------------------------------------------------------------------------- /internal/config/load_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/load_test.go -------------------------------------------------------------------------------- /internal/config/testdata/codapi.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/testdata/codapi.json -------------------------------------------------------------------------------- /internal/config/testdata/sandboxes/alpine/box.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/testdata/sandboxes/alpine/box.json -------------------------------------------------------------------------------- /internal/config/testdata/sandboxes/python/box.json: -------------------------------------------------------------------------------- 1 | { 2 | "image": "codapi/python" 3 | } 4 | -------------------------------------------------------------------------------- /internal/config/testdata/sandboxes/python/commands.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/config/testdata/sandboxes/python/commands.json -------------------------------------------------------------------------------- /internal/engine/docker.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/docker.go -------------------------------------------------------------------------------- /internal/engine/docker_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/docker_test.go -------------------------------------------------------------------------------- /internal/engine/engine.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/engine.go -------------------------------------------------------------------------------- /internal/engine/engine_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/engine_test.go -------------------------------------------------------------------------------- /internal/engine/exec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/exec.go -------------------------------------------------------------------------------- /internal/engine/exec_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/exec_test.go -------------------------------------------------------------------------------- /internal/engine/http.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/http.go -------------------------------------------------------------------------------- /internal/engine/http_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/http_test.go -------------------------------------------------------------------------------- /internal/engine/io.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/io.go -------------------------------------------------------------------------------- /internal/engine/io_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/engine/io_test.go -------------------------------------------------------------------------------- /internal/engine/testdata/example.txt: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /internal/execy/execy.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/execy/execy.go -------------------------------------------------------------------------------- /internal/execy/execy_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/execy/execy_test.go -------------------------------------------------------------------------------- /internal/execy/mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/execy/mock.go -------------------------------------------------------------------------------- /internal/execy/mock_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/execy/mock_test.go -------------------------------------------------------------------------------- /internal/fileio/fileio.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/fileio/fileio.go -------------------------------------------------------------------------------- /internal/fileio/fileio_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/fileio/fileio_test.go -------------------------------------------------------------------------------- /internal/fileio/testdata/invalid.json: -------------------------------------------------------------------------------- 1 | name: alice 2 | -------------------------------------------------------------------------------- /internal/fileio/testdata/valid.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "alice" 3 | } 4 | -------------------------------------------------------------------------------- /internal/httpx/httpx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/httpx/httpx.go -------------------------------------------------------------------------------- /internal/httpx/httpx_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/httpx/httpx_test.go -------------------------------------------------------------------------------- /internal/httpx/mock.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/httpx/mock.go -------------------------------------------------------------------------------- /internal/httpx/mock_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/httpx/mock_test.go -------------------------------------------------------------------------------- /internal/httpx/testdata/example.json: -------------------------------------------------------------------------------- 1 | { "name": "alice" } 2 | -------------------------------------------------------------------------------- /internal/httpx/testdata/example.txt: -------------------------------------------------------------------------------- 1 | hello -------------------------------------------------------------------------------- /internal/logx/logx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/logx/logx.go -------------------------------------------------------------------------------- /internal/logx/logx_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/logx/logx_test.go -------------------------------------------------------------------------------- /internal/logx/memory.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/logx/memory.go -------------------------------------------------------------------------------- /internal/logx/memory_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/logx/memory_test.go -------------------------------------------------------------------------------- /internal/sandbox/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/config.go -------------------------------------------------------------------------------- /internal/sandbox/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/config_test.go -------------------------------------------------------------------------------- /internal/sandbox/sandbox.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/sandbox.go -------------------------------------------------------------------------------- /internal/sandbox/sandbox_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/sandbox_test.go -------------------------------------------------------------------------------- /internal/sandbox/semaphore.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/semaphore.go -------------------------------------------------------------------------------- /internal/sandbox/semaphore_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/sandbox/semaphore_test.go -------------------------------------------------------------------------------- /internal/server/io.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/io.go -------------------------------------------------------------------------------- /internal/server/io_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/io_test.go -------------------------------------------------------------------------------- /internal/server/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/middleware.go -------------------------------------------------------------------------------- /internal/server/middleware_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/middleware_test.go -------------------------------------------------------------------------------- /internal/server/router.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/router.go -------------------------------------------------------------------------------- /internal/server/router_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/router_test.go -------------------------------------------------------------------------------- /internal/server/server.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/server.go -------------------------------------------------------------------------------- /internal/server/server_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/server/server_test.go -------------------------------------------------------------------------------- /internal/stringx/stringx.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/stringx/stringx.go -------------------------------------------------------------------------------- /internal/stringx/stringx_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/internal/stringx/stringx_test.go -------------------------------------------------------------------------------- /sandboxes/ash/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/sandboxes/ash/Dockerfile -------------------------------------------------------------------------------- /sandboxes/ash/box.json: -------------------------------------------------------------------------------- 1 | { 2 | "image": "codapi/ash" 3 | } 4 | -------------------------------------------------------------------------------- /sandboxes/ash/commands.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nalgeon/codapi/HEAD/sandboxes/ash/commands.json --------------------------------------------------------------------------------