Skip to content

Lifecycle

GetInfo

Returns plugin metadata. Called immediately after loading to verify compatibility.

When is this called?

Called before Initialize. Must not perform connection setup.

Request

This method takes no parameters.

Response

Field Type Required Description
name string Display name of the plugin.
vendor string Company or author name.
version string Plugin version (semver recommended).
apiVersion integer API version the plugin was built against. Currently 1.
capabilities array<string> List of method names this plugin supports (camelCase).
menus array<MenuItem> Menu items to add to HydroSym's UI.
hasSettings boolean If true, HydroSym adds a Settings item to the plugin menu.

Example

{
  "method": "GetInfo",
  "request": {}
}

```json { "result": "OK", "response": {

"name": "Acme ERP Connector", "vendor": "Acme Engineering B.V.", "version": "1.0.0", "apiVersion": 1, "capabilities": ["getComponentParameters", "uploadBom", "getProjectVariables", "setProjectVariables"], "menus": [/ MenuItem /], "hasSettings": true } } ```

C# Override

public override GetInfoResponse GetInfo(EmptyRequest request)
{
        // return new GetInfoResponse { Name = ... };
    throw new NotImplementedException();
}

JSON Schemas: Request · Response


Initialize

Establish connections and load configuration.

When is this called?

Called once after GetInfo. Plugin should connect to databases, authenticate, etc.

Request

Field Type Required Description
hydrosymVersion string HydroSym version string.
configPath string Path to plugin-specific configuration file.
hydrosymDataPath string Path to HydroSym's data directory.
mainWindowHandle integer HWND of HydroSym's main window.
windowsUser string Current Windows username.
windowsDomain string Windows domain name, if domain-joined.

Response

This method returns no data on success.

Example

```json { "method": "Initialize", "request": {

"hydrosymVersion": "2025.55.0.0", "configPath": "C:\ProgramData\HydroSym\plugins\acme.ini", "hydrosymDataPath": "C:\ProgramData\HydroSym", "mainWindowHandle": 131072, "windowsUser": "wouter", "windowsDomain": "ACME" } } ```

{
  "result": "OK",
  "response": {}
}

C# Override

public override EmptyResponse Initialize(InitializeRequest request)
{
        // nothing to return
    throw new NotImplementedException();
}

JSON Schemas: Request · Response


Finalize

Close connections and release resources.

When is this called?

Called when HydroSym shuts down. No methods called after this.

Request

This method takes no parameters.

Response

This method returns no data on success.

Example

{
  "method": "Finalize",
  "request": {}
}
{
  "result": "OK",
  "response": {}
}

C# Override

public override EmptyResponse Finalize(EmptyRequest request)
{
        // nothing to return
    throw new NotImplementedException();
}

JSON Schemas: Request · Response