Metadata is a way to attach arbitrary key-value pairs for a sandbox. This is useful in various scenarios, for example:
  • Associate a sandbox with a user session.
  • Store custom user data for a sandbox like API keys.
  • Associate a sandbox with a user ID and connect to it later.
You specify metadata when creating a sandbox and can access it later through listing running sandboxes with Sandbox.list() method.
import { Sandbox } from 'novita-sandbox/code-interpreter'

// Create sandbox with metadata.
const sandbox = await Sandbox.create({
  metadata: {
    userId: '123',
  },
})

// List running sandboxes and access metadata.
const runningSandboxesPaginator = await Sandbox.list({
  query: {
    state: ["running"],
  },
})

const runningSandboxes = await runningSandboxesPaginator.nextItems()

console.log("runningSandboxes[0].metadata: ", runningSandboxes[0].metadata)

// Example output:
// { userId: '123' }

await sandbox.kill()

Filtering sandboxes by metadata

You can also filter sandboxes by metadata, you can find more about it here.