JetPluginSDK (JetPluginSDK v0.1.3)

Jet plugin SDK for elixir.

Tenant

SDK 提供了一套 behaviour 抽象用来实现插件的生命周期功能,只需实现 behaviour 中 定义的回调函数即可。

defmodule JetSamplePlugin.Tenant do
  use JetPluginSDK.TenantMan.Tenants.Tenant

  @impl JetPluginSDK.TenantMan.Tenants.Tenant
  def handle_install(_tenant) do
    {:ok, %{}}
  end

  @impl JetPluginSDK.TenantMan.Tenants.Tenant
  def handle_run({_tenant, tenant_state}) do
    {:noreply, tenant_state}
  end
end

JetClient

插件运行过程中有时需要调用 Jet 的相关接口,这些接口的调用都通过 JetClient 发 起。想要让 JetClient 正常工作,需要为 JetCLient 提供相应的配置:

config :jet_plugin_sdk, JetPluginSDK.JetClient,
  endpoint: "http://plugin.jet.local/graphql",
  access_key: "t/lnVHUw89Vgd+sW"

Warmup

应用启动时可以自动从 Jet 获取插件的实例,并启动相应的 tenants,通过以下配置完成:

config :jet_plugin_sdk, JetPluginSDK.TenantMan,
  warm_up: [tenant_module: JetSamplePlugin.Tenant]

Summary

Functions

Link to this function

fetch_tenant_info(conn, opts)

@spec fetch_tenant_info(conn :: map(), opts :: keyword()) :: {:ok, info()} | :error