api.user.get() → User | api.account.me() | 返回 { user, applications, databases }。 |
user.plan.expiresIn | new Date(user.plan.duration) | 一个时间戳;null 表示永不到期。 |
api.user.snapshots(scope) | api.account.snapshots({ scope }) | |
api.service.status() | api.service.status() | 新的结构:status、message、services、dependencies…… |
api.applications.get() | (await api.account.me()).applications | |
api.applications.get(id) / fetch(id) / app.fetch() | api.apps.get(id) | 也能找到通过 workspace 共享的应用。 |
app.isWebsite() | Boolean((await api.apps.get(id)).domain) | |
api.applications.create(file) | api.apps.create(file, { signal }) | 路径、Blob/File 或 Uint8Array;没有超时。 |
api.applications.statusAll() | api.apps.statusAll({ workspaceId? }) | 普通的 { id, running, cpu?, ram? } 对象(v5 将 cpu/ram 嵌套在 usage 下)。 |
statusAll()[i].fetch() (SimpleApplicationStatus, SimpleDatabaseStatus) | api.apps.status(id) / api.databases.status(id) | |
api.applications.domains() / loadBalancers() | api.apps.domains() / api.apps.loadBalancers() | |
app.getStatus() | api.apps.status(id, { raw? }) | cpu、ram、storage 和 network 位于顶层(v5 将它们嵌套在 usage 下);uptime 是以毫秒表示的启动时间戳(停止时为 null),而不是 Date。 |
app.getLogs() | api.apps.logs(id) | |
app.getMetrics() | api.apps.metrics(id) | 最新的数据点在前。 |
app.realtime() → 原始 Response | api.apps.realtime(id, { signal }) | 由已解析事件组成的异步可迭代对象。 |
app.start() / stop() / restart() / delete() | api.apps.start(id) / stop(id) / restart(id) / delete(id) | |
app.commit(file, fileName) | api.apps.commit(id, file, { path?, filename?, signal? }) | |
app.files.list(path) | api.apps.files.list(id, path?) | 不存在的目录会抛出 404 FILE_NOT_FOUND(以前是空列表)。 |
app.files.read(path) → Buffer | undefined | api.apps.files.read(id, path) → Uint8Array | 以 base64 请求并解码(v5 读取的是字节数组)。当 API 未发送内容时返回空字节,绝不会是 undefined。 |
app.files.create(file, fileName, dir) | api.apps.files.write(id, `${dir}/${fileName}`, content) | 字符串即为内容(以纯文本发送);v5 将其作为本地路径读取。字节以 base64 发送。空内容会创建一个空文件。 |
app.files.edit(file, path) | api.apps.files.write(id, path, content) | 与 write 相同的传输格式:字符串为文本,字节为 base64。 |
app.files.move(path, newPath) / delete(path) | api.apps.files.move(id, path, to) / delete(id, path) | |
app.envs.list() | api.apps.envs.get(id) | |
app.envs.set(envs) / replace(envs) / delete(keys) | api.apps.envs.set(id, envs) / replace(id, envs) / delete(id, keys) | 每个方法都返回最终的变量。 |
app.snapshots.list() | api.apps.snapshots.list(id) | 条目新增了 name、runtime、origin、version_id 以及已签名的下载 url,全部与 API 发送的一致。 |
app.snapshots.create() | api.apps.snapshots.create(id) | 返回 202 时为 { pending: true }(v5 会抛出异常),否则为 { pending: false, url, key }。 |
app.snapshots.download() → Buffer | const s = await api.apps.snapshots.create(id),然后 if (!s.pending) await api.downloadSnapshot(s.url) | 一个 ReadableStream,不缓冲任何内容。待处理(202)的 snapshot 还没有 URL:v5 会抛出异常。 |
snapshot.url / snapshot.download() | snapshot.url / api.downloadSnapshot(snapshot.url) | API 自身的已签名 URL(v5 会根据调用者的 ID 构建出错误的 URL)。 |
app.snapshots.restore({ snapshotId, versionId }) | api.apps.snapshots.restore(id, name, versionId) | 传入已列出 snapshot 的 name 和 version_id。错误请参见 Snapshots。 |
app.deploys.integrateGithubWebhook(token) | api.apps.deploys.setWebhook(id, token) | 返回 webhook URL(使用 "@" 移除时为 "")。 |
app.deploys.linkGithubApp({ repositoryName, repositoryBranch }) | api.apps.deploys.linkGithubApp(id, repository, branch) | 位置参数。返回 { id, full_name, branch }。现在接受 API 密钥(作用域 apps:deploy);v5 需要会话 JWT。 |
app.deploys.unlinkGithubApp() → boolean | api.apps.deploys.unlinkGithubApp(id) | 解析为 void(以前是 boolean)。没有任何关联时返回 400 GIT_NOT_CONFIGURED。 |
app.deploys.list() → Deployment[][] | api.apps.deploys.list(id) → DeployEvent[][] | 失败的 deploy 以 state: "error" 结束,带有 code(有详细信息时还带有 message);source 始终为 "git"。 |
app.deploys.current() | api.apps.deploys.current(id) → DeployCurrent | 未配置任何内容时为 {}。 |
app.deploys.webhookURL() | (await api.apps.deploys.current(id)).webhook | |
app.network(仅在 WebsiteApplication 上) | api.apps.network | 任意应用 ID;API 会拒绝非 Web 应用。 |
network.setCustomDomain(domain) | api.apps.network.setDomain(id, domain) | |
network.analytics({ start, end, contentType, ... }) | api.apps.network.analytics(id, start, end, { content_type, ... }) | 空窗口时为 null。 |
network.errors({ start, end, include4xx }) | api.apps.network.errors(id, start, end, { include_4xx }) | 空窗口时为 null。 |
network.logs({ start, end }) / performance({ start, end }) | api.apps.network.logs(id, start, end) / performance(id, start, end) | |
network.dns() / purgeCache() | api.apps.network.dns(id) / purgeCache(id) | |
api.databases.fetch(id) / db.fetch() | api.databases.get(id) | |
api.databases.create(options) / statusAll() | 未变 | statusAll() 返回普通的 { id, running, cpu?, ram? } 对象。 |
db.getStatus() / getMetrics() | api.databases.status(id, { raw? }) / metrics(id) | ram 是正在使用的 RAM,例如 "120.4MB"(使用 raw 时为数字)。指标最新的在前。 |
db.start() / stop() / update(changes) / delete() | api.databases.start(id) / stop(id) / update(id, changes) / delete(id) | |
db.credentials.certificate() | api.databases.certificate(id) | |
db.credentials.reset(type) | api.databases.resetCredentials(id, type) | 新密码("certificate" 时为 "")。 |
db.snapshots.list() / create() / download() | api.databases.snapshots.list(id) / create(id) / api.downloadSnapshot(url) | download() 与应用相同:先 create(id),不处于待处理状态时再 downloadSnapshot(s.url)。 |
db.snapshots.restore(snapshotId, versionId) | api.databases.snapshots.restore(id, name, versionId) | 传入已列出 snapshot 的 name 和 version_id。 |
api.workspaces.list() / fetch(id) / workspace.fetch() | api.workspaces.list() / get(id) | |
api.workspaces.create({ name }) | api.workspaces.create(name) | 返回 WorkspaceCreated({ id, name })。 |
api.workspaces.delete(id) / workspace.delete() | api.workspaces.delete(id) | |
api.workspaces.leave(id) / workspace.leave() | api.workspaces.leave(id) | |
api.workspaces.generateInviteCode() | api.workspaces.members.inviteCode() | |
workspace.members.add(code, group) | api.workspaces.members.add(workspaceId, code, group) | |
workspace.members.update(memberId, group) / remove(memberId) | api.workspaces.members.update(workspaceId, memberId, group) / remove(workspaceId, memberId) | |
workspace.applications.add(appId) / remove(appId) | api.workspaces.apps.add(workspaceId, appId) / remove(workspaceId, appId) | |
| (无) | api.ai.chat(request)、api.downloadSnapshot(url)、BASE_URL | 新增。 |