Skip to main content

Quickstart

This is the fastest path to a working plugin.

What You Need To Know First

FDO plugins have two runtimes:
  • backend runtime
  • iframe UI runtime
Your plugin class, handlers, storage, and logging run in backend runtime. Your UI runs later inside a sandboxed iframe. That is the core rule behind the SDK.

Smallest Valid Plugin

import { FDO_SDK, FDOInterface, PluginMetadata } from "@anikitenko/fdo-sdk";

export default class MyPlugin extends FDO_SDK implements FDOInterface {
  private readonly _metadata: PluginMetadata = {
    name: "My Plugin",
    version: "1.0.0",
    author: "Your Name",
    description: "My first plugin",
    icon: "cog",
  };

  get metadata(): PluginMetadata {
    return this._metadata;
  }

  init(): void {
    this.info("Plugin initialized");
  }

  render(): string {
    return `<div>Hello from FDO SDK</div>`;
  }
}

Start With Fixtures

If you are building a real plugin, start from:
  • examples/fixtures/minimal-plugin.fixture.ts
  • examples/fixtures/error-handling-plugin.fixture.ts
  • examples/fixtures/storage-plugin.fixture.ts