实例元数据
读取运行机器与进程元数据、Provision 版本信息,以及自定义公开实例字段。
能力:instanceMetadata。API:chrovia.instanceMetadata,是对象,不是函数或 Promise。在 Provision Service Worker 使用;页面访问还需要 unrestrictedApi。
添加公开字段
运行机器字段由浏览器采集。应用自有元数据放在 internal.instance_metadata.public 下:
{
"internal": {
"instance_metadata": {
"public": {
"instance_id": "workspace-01",
"label": "Workspace 01",
"region": "test"
}
}
}
}启动前按要求合并并签名 EP。应用的 public.instance_id 不是内核租约的 instanceId,不会改变租约身份。
const metadata = globalThis.chrovia?.instanceMetadata;
if (metadata) {
console.log({
label: metadata.public?.label,
pid: metadata.process?.id,
packageVersion: metadata.provision?.manifest?.version,
});
}对象结构
| 部分 | 字段 |
|---|---|
host | machineId、serialNumber、hostname、userName |
os | name、version、architecture |
hardware | logicalProcessors、physicalMemory(字节) |
directories | userData、downloads、desktop、appData、localAppData、home、temp |
process | id,浏览器进程 ID |
provision | Provision 根目录的 manifest |
public | 配置的 JSON 对象 |
不可用或为空的值及部分会被省略。使用可选访问,不要假设所有平台都有序列号或 localAppData。即使拥有能力,元数据不可用时也可能为 undefined。
边界
这是运行机器信息,不是由 fingerprint_override 生成的指纹身份。directories.downloads 报告平台默认下载路径,不一定是 Profile 实际配置的保存位置。设置下载行为应使用 Profile 偏好,而不是修改元数据。
主机标识和文件路径属于敏感信息。public 表示可暴露的数据,不适合存放令牌或密码。更改配置后重启;修改返回的 JS 对象不是持久化写入 API。