automatiqal
Version:
Automate Qlik deployments, management and administration
62 lines (61 loc) • 1.9 kB
TypeScript
import { QlikRepoApi } from "qlik-repo-api";
import { IRunBook, ITask } from "./RunBook.interfaces";
import { Debugger } from "../util/Debugger";
import { QlikSaaSApi } from "qlik-saas-api";
export interface IRunBookResult {
task: string;
details: any;
error?: boolean;
errorMessage?: string;
}
export interface ITaskTimings {
start: string;
end: string;
totalSeconds: number;
}
export interface ITaskResult {
data: IRunBookResult[] | IRunBookResult;
task: ITask;
timings: ITaskTimings;
status: "Completed" | "Error" | "Skip" | "Error (Force exit)";
skipReason?: "When condition" | "Preset" | "Source skipped";
}
export declare class Runner {
runBook: IRunBook;
instances: {
[k: string]: QlikRepoApi.client | QlikSaaSApi.client;
};
defaultInstance: QlikRepoApi.client | QlikSaaSApi.client;
debug: Debugger;
private winOperations;
private taskResults;
private emitter;
private today;
private increment;
private operations;
private taskDefaultOptions;
dryRun: boolean;
constructor(runBook: IRunBook, instances: {
[k: string]: QlikRepoApi.client | QlikSaaSApi.client;
}, defaultInstance: QlikRepoApi.client | QlikSaaSApi.client, dryRun: boolean);
start(): Promise<ITaskResult[]>;
private getFilterItems;
private taskProcessing;
private runTaskLoop;
private replaceLoopVariablesInTask;
private replaceInlineVariables;
private getPropertyFromTaskResult;
private replaceSpecialVariables;
/**
* Mask any sensitive data inside the task details
* like data connection passwords
*/
private maskSensitiveData;
/**
* Mask any sensitive data inside the task details
* like data connection passwords
*/
private maskSensitiveDataDetails;
private parseWhenCondition;
pause(seconds: string): Promise<number>;
}