Sandbox metadata
Metadata associates a sandbox with application data such as a session, user, job, or environment. Keys and values are strings and are returned by list and info operations.
mjs
import { Sandbox } from "@abox-dev/sdk";
const sandbox = await Sandbox.create({
metadata: { sessionId: "session-42", environment: "development" },
});
try {
const paginator = Sandbox.list({
query: { metadata: { sessionId: "session-42" } },
});
const sandboxes = await paginator.nextItems();
console.log(sandboxes[0].metadata);
} finally {
await sandbox.kill();
}py
from agentbox import Sandbox, SandboxQuery
sandbox = Sandbox.create(
metadata={"sessionId": "session-42", "environment": "development"}
)
try:
paginator = Sandbox.list(
query=SandboxQuery(metadata={"sessionId": "session-42"})
)
sandboxes = paginator.next_items()
print(sandboxes[0].metadata)
finally:
sandbox.kill()go
package main
import (
"context"
"fmt"
"log"
"github.com/abox-dev/sdk/packages/go-sdk"
)
func kill(sandbox *agentbox.Sandbox) {
if _, err := sandbox.Kill(context.Background()); err != nil {
log.Printf("cleanup sandbox: %v", err)
}
}
func run() (err error) {
ctx := context.Background()
client, err := agentbox.NewClient()
if err != nil {
return err
}
sandbox, err := client.Sandboxes.Create(ctx, &agentbox.CreateSandboxOptions{
Metadata: map[string]string{
"sessionId": "session-42", "environment": "development",
},
})
if err != nil {
return err
}
defer kill(sandbox)
page, err := client.Sandboxes.List(ctx, &agentbox.ListSandboxOptions{
Metadata: map[string]string{"sessionId": "session-42"},
})
if err != nil {
return err
}
fmt.Println(*page.Items[0].Metadata)
return nil
}
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}Filtering happens on the AgentBox API, so your application does not need to download every sandbox first. Multiple metadata pairs select sandboxes that match all pairs.
Metadata is visible to project members and API clients. Do not store API keys, passwords, or other secrets in it. Pass runtime secrets through a dedicated secret mechanism or environment variables with the access scope your application requires.