Tunnel Plugins types

Any plugin that provides tunnel functionality should implement defineProviderand startTunnel

interface HookReturnsPerPlugin {
    public_command_metadata: {
        options: Record<string, never>;
        pluginReturns: {
            "@shopify/app": Partial<AppSpecificMonorailFields>;
            [pluginName: string]: JsonMap;
        };
    };
    sensitive_command_metadata: {
        options: Record<string, never>;
        pluginReturns: {
            "@shopify/app": Partial<
                PickByPrefix<
                    {
                        app_name?: Optional<string>;
                        args: string;
                        cmd_all_environment_flags?: Optional<string>;
                        cmd_dev_tunnel_custom?: Optional<string>;
                        env_plugin_installed_all?: Optional<string>;
                        env_shopify_variables?: Optional<string>;
                        error_message?: Optional<string>;
                        metadata?: Optional<string>;
                        store_fqdn?: Optional<string>;
                    },
                    "app_",
                    never,
                >,
            >;
            [pluginName: string]: JsonMap;
        };
    };
    tunnel_provider: {
        options: Record<string, never>;
        pluginReturns: Record<string, { name: string }>;
    };
    tunnel_start: {
        options: { port: number; provider: string };
        pluginReturns: Record<string, Result<TunnelClient, TunnelError>>;
    };
    [hookName: string]: {
        options: Record<string, unknown>;
        pluginReturns: Record<string, unknown>;
    };
}

Hierarchy (View Summary)

Indexable

  • [hookName: string]: { options: Record<string, unknown>; pluginReturns: Record<string, unknown> }

Properties

public_command_metadata: {
    options: Record<string, never>;
    pluginReturns: {
        "@shopify/app": Partial<AppSpecificMonorailFields>;
        [pluginName: string]: JsonMap;
    };
}
sensitive_command_metadata: {
    options: Record<string, never>;
    pluginReturns: {
        "@shopify/app": Partial<
            PickByPrefix<
                {
                    app_name?: Optional<string>;
                    args: string;
                    cmd_all_environment_flags?: Optional<string>;
                    cmd_dev_tunnel_custom?: Optional<string>;
                    env_plugin_installed_all?: Optional<string>;
                    env_shopify_variables?: Optional<string>;
                    error_message?: Optional<string>;
                    metadata?: Optional<string>;
                    store_fqdn?: Optional<string>;
                },
                "app_",
                never,
            >,
        >;
        [pluginName: string]: JsonMap;
    };
}
tunnel_provider: {
    options: Record<string, never>;
    pluginReturns: Record<string, { name: string }>;
}
tunnel_start: {
    options: { port: number; provider: string };
    pluginReturns: Record<string, Result<TunnelClient, TunnelError>>;
}