Metadata Service
Read sandbox, exec, network, telemetry, and mount metadata from the in-guest IMDSv2 metadata service.
Leap0 exposes a metadata service inside each sandbox at 169.254.169.254.
It publishes Leap0-specific metadata under http://169.254.169.254/latest/meta-data/leap0.
Read the root document when you want the full payload, or read nested paths such as http://169.254.169.254/latest/meta-data/leap0/mounts when you only need one section.
The root payload includes schema_version so guest code can identify the metadata document version.
The full response schema is documented in the Metadata Service API reference.
Authentication
The metadata service uses IMDSv2. First request a token, then include it on metadata reads.
TOKEN=$(curl -sf -X PUT http://169.254.169.254/latest/api/token \
-H 'X-metadata-token-ttl-seconds: 60')
curl -sf \
-H "X-metadata-token: $TOKEN" \
-H 'Accept: application/json' \
http://169.254.169.254/latest/meta-data/leap0Read metadata from a sandbox
from leap0 import Leap0Client
client = Leap0Client()
sandbox = client.sandboxes.create(
mounts=[
{
"type": "object-storage",
"bucket": "cloud-samples-data",
"endpoint": "https://storage.googleapis.com",
"mount_path": "/data/assets",
"prefix": "adc/",
"read_only": True,
}
],
)
result = sandbox.process.execute(
command=(
"TOKEN=$(curl -sf -X PUT http://169.254.169.254/latest/api/token "
"-H 'X-metadata-token-ttl-seconds: 60') && "
"curl -sf -H 'X-metadata-token: $TOKEN' -H 'Accept: application/json' "
"http://169.254.169.254/latest/meta-data/leap0"
)
)
print(result.stdout)
client.close()import { Leap0Client } from "leap0";
const client = new Leap0Client();
const sandbox = await client.sandboxes.create({
mounts: [
{
type: "object-storage",
bucket: "cloud-samples-data",
endpoint: "https://storage.googleapis.com",
mountPath: "/data/assets",
prefix: "adc/",
readOnly: true,
},
],
});
const result = await sandbox.process.execute({
command:
`TOKEN=$(curl -sf -X PUT http://169.254.169.254/latest/api/token -H 'X-metadata-token-ttl-seconds: 60') && ` +
`curl -sf -H 'X-metadata-token: $TOKEN' -H 'Accept: application/json' ` +
`http://169.254.169.254/latest/meta-data/leap0`,
});
console.log(result.stdout);
await client.close();Was this page helpful?

