实例元数据

读取运行机器与进程元数据、Provision 版本信息,以及自定义公开实例字段。

能力:instanceMetadataAPI: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,
  });
}

对象结构

部分字段
hostmachineIdserialNumberhostnameuserName
osnameversionarchitecture
hardwarelogicalProcessorsphysicalMemory(字节)
directoriesuserDatadownloadsdesktopappDatalocalAppDatahometemp
processid,浏览器进程 ID
provisionProvision 根目录的 manifest
public配置的 JSON 对象

不可用或为空的值及部分会被省略。使用可选访问,不要假设所有平台都有序列号或 localAppData。即使拥有能力,元数据不可用时也可能为 undefined

边界

这是运行机器信息,不是由 fingerprint_override 生成的指纹身份。directories.downloads 报告平台默认下载路径,不一定是 Profile 实际配置的保存位置。设置下载行为应使用 Profile 偏好,而不是修改元数据。

主机标识和文件路径属于敏感信息。public 表示可暴露的数据,不适合存放令牌或密码。更改配置后重启;修改返回的 JS 对象不是持久化写入 API。