KJDrawDocs

KJDRAW / DEPLOYMENT

Deployment

Keep browser-local operation simple or attach explicit project, compute and scene providers for other product topologies.

Supported profiles#

ProfileWhere project data livesTypical use
browser-localKJP file or browser storageZero-install tools and offline review
desktop-localApplication-managed project fileDesktop engineering products
self-hostedOrganization-selected providersPrivate networks and regulated environments
cloud-assistedHost-selected remote servicesManaged compute or conversion
hybridExplicit local and remote providersLocal editing with selected acceleration

KJDraw uses the same editor, document and file APIs in every profile. A registered provider runs only when the application invokes it.

Register a project provider#

import {
  KJDeploymentRegistry,
  KJ_PROVIDER_TYPES,
  createDeploymentProfile,
  validateDeploymentProfile,
} from '@kanjieteam/kjdraw/deployment'

const providers = new KJDeploymentRegistry()

providers.register(KJ_PROVIDER_TYPES.PROJECT_STORE, {
  id: 'acme.projects',
  locality: 'self-hosted',
  loadProject: id => projectApi.load(id),
  saveProject: (id, bytes) => projectApi.save(id, bytes),
})

const deployment = validateDeploymentProfile(createDeploymentProfile({
  mode: 'self-hosted',
  projectAuthority: 'acme.projects',
  providers: { 'project-store': 'acme.projects' },
}), providers)

Provider families#

  • project-store loads and saves project artifacts.
  • compute executes a named host operation.
  • scene opens a scene and answers viewport queries.

Profiles select providers, while credentials stay in application configuration. Your application decides when to invoke a provider and how to authenticate the request.

Connect your application#

Keep credentials, encryption, authorization, tenancy, retry and storage choices in your application layer. A platform-specific project provider can add atomic replacement and durable writes where the product needs them.

See the runnable deployment provider example.

KJDRAW / 部署

部署

既可保持浏览器本地运行,也可为其他产品形态显式连接工程、计算与场景 Provider。

支持的部署形态#

形态工程数据位置常见用途
browser-localKJP 文件或浏览器存储零安装工具与离线审核
desktop-local应用管理的工程文件桌面工程产品
self-hosted组织选择的 Provider内网与合规环境
cloud-assisted宿主选择的远程服务托管计算或转换
hybrid显式本地与远程 Provider本地编辑加选择性加速

KJDraw 在每种形态下都使用同一套编辑器、图档与文件 API。已注册的 Provider 只会在应用主动调用时运行。

注册工程 Provider#

import {
  KJDeploymentRegistry,
  KJ_PROVIDER_TYPES,
  createDeploymentProfile,
  validateDeploymentProfile,
} from '@kanjieteam/kjdraw/deployment'

const providers = new KJDeploymentRegistry()

providers.register(KJ_PROVIDER_TYPES.PROJECT_STORE, {
  id: 'acme.projects',
  locality: 'self-hosted',
  loadProject: id => projectApi.load(id),
  saveProject: (id, bytes) => projectApi.save(id, bytes),
})

const deployment = validateDeploymentProfile(createDeploymentProfile({
  mode: 'self-hosted',
  projectAuthority: 'acme.projects',
  providers: { 'project-store': 'acme.projects' },
}), providers)

Provider 类型#

  • project-store 读取与保存工程产物。
  • compute 执行宿主定义的命名操作。
  • scene 打开场景并响应视口查询。

部署 Profile 选择所需 Provider,凭据保存在应用配置中。何时调用、怎样认证都由你的应用决定。

连接你的应用#

凭据、加密、授权、租户隔离、重试与存储选择都保留在你的应用层。平台专用的工程 Provider 可以按产品需要增加原子替换与持久写入。

参见可运行的 部署 Provider 示例

Guides, Editor API and complete type reference指南、Editor API 与完整类型参考