文档开发者 (SDK)Platform SDK (基础底座)

Platform SDK

Platform SDK 的定位与普通的业务 SDK 不同。它是专门为 平台管理员、DevOps 工程师和 CI/CD 自动化流水线 设计的。

它的核心职责是:管理平台的基础设施与元数据。例如:自动注册数据源、自动触发流水线运行、或者一键发布应用。


1. 核心架构抽象:PlatformJob

在平台层,很多操作都是耗时的异步任务(例如:拉取一张包含几百列的表结构,或者运行一个跑批 30 分钟的 Spark 流水线)。

因此,Platform SDK 将这些操作统一抽象为了 PlatformJob。它支持:

  1. 通过 WebSocket 监听实时进度(0-100%)。
  2. 提供 wait() 方法阻塞等待最终的成功或失败结果。
// 触发一个异步的 Schema 同步任务
const syncJob = await platform.datasets.syncSchema("dataset-123");
 
// 通过 WebSocket 实时打印进度
syncJob.subscribe(job => console.log(`Sync progress: ${job.progress}%`));
 
// 阻塞脚本直到任务完成
await syncJob.wait();

2. 端到端自动化示例 (Infrastructure-as-Code)

Platform SDK 非常适合用来编写自动化脚本。以下是一个典型的自动化上线脚本示例:它自动注册数据源、同步表结构、建立本体模型,最后发布一个前端应用。

import { PlatformClient } from "@loambase/platform-sdk";
 
// 1. 初始化 Platform Client(支持 Server-to-Server M2M 认证)
const platform = new PlatformClient({
  baseUrl: "https://api.loambase.com",
  apiKey: process.env.LOAMBASE_API_KEY,
  workspaceId: "ws-prod-01"
});
 
async function provisionNewDomain() {
  console.log("1. 创建物理数据源...");
  const dbId = await platform.datasources.create("Core ERP", {
    type: "POSTGRESQL",
    url: "jdbc:postgresql://db.internal:5432/erp"
  });
 
  console.log("2. 注册 Dataset 并触发 Schema 异步同步...");
  const rawOrdersId = await platform.datasets.createFromSource({
    name: "raw_orders",
    sourceId: dbId,
    sourceTable: "public.orders"
  });
  
  const syncJob = await platform.datasets.syncSchema(rawOrdersId);
  await syncJob.wait(); // 等待同步完成
 
  console.log("3. 定义 Ontology 本体对象...");
  const orderObjId = await platform.ontology.createObjectType({
    apiName: "Order",
    displayName: "Customer Order",
    primaryDatasetId: rawOrdersId,
    primaryKeyProperty: "id"
  });
 
  console.log("4. 触发应用编译与发布...");
  const appId = await platform.apps.create("Order Management Portal");
  const deployJob = await platform.apps.deploy(appId, "v1.0.0");
  
  const deployResult = await deployJob.wait();
  console.log(`✅ 应用发布成功,访问地址: ${deployResult.url}`);
}
 
provisionNewDomain().catch(console.error);

适用场景总结

如果你想开发一个面向终端用户的业务系统(比如查询订单列表、修改员工状态),请不要使用 Platform SDK,而应该使用 React SDK 或底层的 OSDK 业务接口。 Platform SDK 的正确用法是“用代码去管理你的 Foundry 平台”。