Member Junction
    Preparing search index...
    • Records a new app installation in the MJ: Open Apps table.

      When a TransactionGroup is provided the save is queued (not executed) and the caller is responsible for calling tg.Submit(). The returned appId is available immediately because MJ pre-generates IDs on NewRecord().

      Parameters

      • contextUser: UserInfo

        The user performing the installation

      • manifest: {
            $schema?: string;
            categories?: string[];
            code?: { sourceDirectory?: string; visibility?: "public" | "private" };
            color?: string;
            configuration?: { schema?: Record<string, unknown> };
            dependencies?:
                | {
                    [k: string]: { repository: string; subpath?: string; version: string };
                }
                | Record<
                    string,
                    string
                    | { repository?: string; subpath?: string; version?: string },
                >;
            description?: string;
            displayName?: string;
            hooks?: {
                postInstall?: string;
                postInstallModule?: string;
                postUpgrade?: string;
                postUpgradeModule?: string;
                preRemove?: string;
                preRemoveModule?: string;
            };
            icon?: string;
            license?: string;
            manifestVersion?: 1;
            metadata?: { directory?: string };
            migrations?: {
                directory?: string;
                engine?: "flyway" | "skyway";
                teardownDirectory?: string;
            };
            mjVersionRange?: string;
            name?: string;
            packages?: {
                client?: {
                    name?: string;
                    role?: | "bootstrap"
                    | "actions"
                    | "engine"
                    | "provider"
                    | "module"
                    | "components"
                    | "library";
                    startupExport?: string;
                }[];
                prefix?: string;
                registry?: string;
                server?: {
                    name?: string;
                    role?: | "bootstrap"
                    | "actions"
                    | "engine"
                    | "provider"
                    | "module"
                    | "components"
                    | "library";
                    startupExport?: string;
                }[];
                shared?: {
                    name?: string;
                    role?: | "bootstrap"
                    | "actions"
                    | "engine"
                    | "provider"
                    | "module"
                    | "components"
                    | "library";
                    startupExport?: string;
                }[];
            };
            publisher?: { email?: string; name?: string; url?: string };
            repository?: string;
            schema?: {
                createIfNotExists?: boolean;
                entityPackage?: string;
                name?: string;
            };
            tags?: string[];
            version?: string;
        }

        The validated app manifest

      • Optionalcallbacks: AppInstallCallbacks

        Progress callbacks

      • OptionaltransactionGroup: TransactionGroupBase

        Optional TransactionGroup for atomic batching

      • initialStatus: AppStatus = 'Active'

        Status to set on the record (default: 'Active')

      • Optionalprovider: IMetadataProvider
      • Optionalsubpath: string

      Returns Promise<string>

      The OpenApp record ID (pre-generated for new, existing for reinstall)