@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
45 lines • 2.02 kB
TypeScript
import { GraphClientListener } from "@atomist/automation-client/lib/graph/ApolloGraphClient";
import { HandlerContext } from "@atomist/automation-client/lib/HandlerContext";
import { MutationOptions } from "@atomist/automation-client/src/lib/spi/graph/GraphClient";
import { DeepPartial } from "ts-essentials";
import { SdmGoalEvent } from "../../api/goal/SdmGoalEvent";
import { SdmGoalMessage } from "../../api/goal/SdmGoalMessage";
import { GoalSigningAlgorithm, GoalSigningConfiguration } from "../../api/machine/SigningKeys";
export interface SignatureMixin {
signature: string;
}
export declare const DefaultGoalSigningAlgorithm: GoalSigningAlgorithm<string>;
/**
* AutomationEventListener that verifies incoming SDM goals against a set of configurable
* verification public keys.
*
* Optionally a private key can be specified to sign outgoing goals. Setting this is strongly
* recommended to prevent executing untrusted and/or tampered SDM goals.
*/
export declare class GoalSigningAutomationEventListener implements GraphClientListener<{
goal: SdmGoalMessage;
}> {
private readonly gsc;
constructor(gsc: GoalSigningConfiguration);
onMutation(options: MutationOptions<{
goal: SdmGoalMessage;
}>): Promise<MutationOptions<{
goal: SdmGoalMessage;
}>>;
private initVerificationKeys;
}
/**
* Verify a goal signature against the public keys configured in provided Configuration.
* If signature can't be verified, the goal will be marked as failed and an Error will be thrown.
* @param goal goal to verify
* @param gsc signing configuration
* @param ctx
*/
export declare function verifyGoal(goal: SdmGoalEvent & DeepPartial<SignatureMixin>, gsc: GoalSigningConfiguration, ctx: HandlerContext): Promise<SdmGoalEvent>;
/**
* Add a signature to a goal
* @param goal
* @param gsc
*/
export declare function signGoal(goal: SdmGoalMessage, gsc: GoalSigningConfiguration): Promise<SdmGoalMessage & SignatureMixin>;
//# sourceMappingURL=goalSigning.d.ts.map