@holochain/tryorama
Version:
Toolset to manage Holochain conductors and facilitate running test scenarios
585 lines (584 loc) • 14.9 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { AddAgentInfoRequest, AgentInfoRequest, AgentInfoResponse, AppAuthenticationToken, AppInfo, AppInfoResponse, AttachAppInterfaceRequest, AttachAppInterfaceResponse, CallZomeRequestSigned, CreateCloneCellRequest, CreateCloneCellResponse, DeleteCloneCellRequest, DisableAppRequest, DisableAppResponse, DisableCloneCellRequest, DisableCloneCellResponse, DnaDefinition, DumpFullStateRequest, DumpNetworkStatsRequest, DumpNetworkStatsResponse, DumpStateRequest, DumpStateResponse, EnableAppRequest, EnableAppResponse, EnableCloneCellRequest, EnableCloneCellResponse, FullStateDump, GetCompatibleCellsRequest, GetCompatibleCellsResponse, GetDnaDefinitionRequest, GrantZomeCallCapabilityRequest, HoloHash, InstallAppRequest, IssueAppAuthenticationTokenRequest, IssueAppAuthenticationTokenResponse, ListAppInterfacesResponse, ListAppsRequest, ListAppsResponse, ListCellIdsResponse, ListDnasResponse, NetworkInfoRequest, NetworkInfoResponse, ProvideMemproofsRequest, RegisterDnaRequest, RevokeAgentKeyRequest, RevokeAgentKeyResponse, StartAppRequest, StartAppResponse, StorageInfoRequest, StorageInfoResponse, UninstallAppRequest, UninstallAppResponse, UpdateCoordinatorsRequest, UpdateCoordinatorsResponse } from "@holochain/client";
import { ConductorId } from "./conductor/index.js";
/**
* @internal
*/
export interface _TryCpCall {
id: number;
request: TryCpRequest;
}
/**
* Log level for a TryCP conductor.
*
* @public
*/
export type TryCpConductorLogLevel = "error" | "warn" | "info" | "debug" | "trace";
/**
* Contains all possible request types.
*
* @public
*/
export type TryCpRequest = RequestDownloadDna | RequestSaveDna | RequestConfigurePlayer | RequestStartup | RequestShutdown | RequestReset | RequestConnectAppInterface | RequestDisconnectAppInterface | RequestCallAppInterface | RequestCallAppInterfaceEncoded | RequestCallAdminInterface | RequestDownloadLogs;
/**
* Request to download a DNA from a URL.
*
* @param url - from where to download the DNA
*
* @public
*/
export interface RequestDownloadDna {
type: "download_dna";
url: string;
}
/**
* Request to save a DNA to the server's file system.
*
* @public
*/
export interface RequestSaveDna {
type: "save_dna";
id: string;
content: Buffer;
}
/**
* Request to create configuration files and directories for a conductor.
*
* @public
*/
export interface RequestConfigurePlayer {
type: "configure_player";
id: ConductorId;
partial_config: string;
}
/**
* Request startup of a conductor.
*
* @public
*/
export interface RequestStartup {
type: "startup";
id: ConductorId;
log_level?: TryCpConductorLogLevel;
}
/**
* Request shutdown of a conductor.
*
* @public
*/
export interface RequestShutdown {
type: "shutdown";
id: ConductorId;
signal?: "SIGTERM" | "SIGKILL" | "SIGINT";
}
/**
* Request deletion of **all** conductors.
*
* @public
*/
export interface RequestReset {
type: "reset";
}
/**
* Request to connect an app interface to a conductor.
*
* @public
*/
export interface RequestConnectAppInterface {
type: "connect_app_interface";
token: AppAuthenticationToken;
port: number;
}
/**
* Request to disconnect a connected app interface from a conductor.
*
* @public
*/
export interface RequestDisconnectAppInterface {
type: "disconnect_app_interface";
port: number;
}
/**
* Responses are composed of an object with either `Ok` or `Err` as a property for success or error.
*
* @internal
*/
export type _TryCpResponse = _TryCpResponseSuccess | _TryCpResponseError;
/**
* @internal
*/
export declare enum _TryCpResponseResult {
Ok = "Ok",
Err = "Err"
}
/**
* @internal
*/
export interface _TryCpResponseSuccess {
[_TryCpResponseResult.Ok]: _TryCpSuccessResponseSeralized;
}
/**
* @internal
*/
export interface _TryCpResponseError {
[_TryCpResponseResult.Err]: TryCpResponseErrorValue;
}
/**
* @internal
*/
export type _TryCpSuccessResponseSeralized = typeof TRYCP_SUCCESS_RESPONSE | string | Uint8Array;
/**
* Possible values a for success response from the TryCP server.
*
* @public
*/
export type TryCpSuccessResponse = typeof TRYCP_SUCCESS_RESPONSE | string | TryCpApiResponse;
/**
* Empty success response.
*
* @public
*/
export declare const TRYCP_SUCCESS_RESPONSE: null;
/**
* Error response values.
*
* @public
*/
export type TryCpResponseErrorValue = string | Error;
/**
* Possible responses from the Admin and App APIs.
*
* @public
*/
export type TryCpApiResponse = AdminApiResponse | AppApiResponse | TryCpControlResponse | ApiErrorResponse;
/**
* A response from the TryCP server.
*
* @public
*/
export type TryCpControlResponse = DownloadLogsResponseType;
/**
* Enumerated response for downloading logs.
*
* @public
*/
export interface DownloadLogsResponseType {
type: "download_logs";
data: DownloadLogsResponse;
}
/**
* Response for downloading logs.
*
* @public
*/
export interface DownloadLogsResponse {
lair_stderr: Uint8Array;
conductor_stdout: Uint8Array;
conductor_stderr: Uint8Array;
}
/**
* Error response from the Admin or App API.
*
* @public
*/
export interface ApiErrorResponse {
type: "error";
value: {
type: string;
value: string;
};
}
/**
* @internal
*/
export type _TryCpResponseWrapper = _TryCpResponseWrapperResponse | _TryCpResponseWrapperSignal;
/**
* @internal
*/
export interface _TryCpResponseWrapperResponse {
type: "response";
id: number;
response: _TryCpResponse;
}
/**
* @internal
*/
export interface _TryCpResponseWrapperSignal {
type: "signal";
port: number;
data: Uint8Array;
}
/**
* Request a call to the App API.
*
* @public
*/
export interface RequestCallAppInterface {
type: "call_app_interface";
port: number;
message: RequestCallAppInterfaceMessage;
}
/**
* All possible calls to the App API.
*
* @public
*/
export type RequestCallAppInterfaceMessage = RequestCallZome | RequestAppInfo | RequestProvideMemproofs | RequestEnableApp | RequestCreateCloneCell | RequestEnableCloneCell | RequestDisableCloneCell | RequestNetworkInfo;
/**
* Request to provide deferred memproofs for an app.
*
* @public
*/
export interface RequestProvideMemproofs {
type: "provide_memproofs";
value: ProvideMemproofsRequest;
}
/**
* Request to enable the app.
*
* @public
*/
export interface RequestEnableApp {
type: "enable_app";
}
/**
* Request to call a zome on a conductor's app interface.
*
* @public
*/
export interface RequestCallZome {
type: "call_zome";
value: CallZomeRequestSigned;
}
/**
* Request app info from a conductor.
*
* @public
*/
export interface RequestAppInfo {
type: "app_info";
}
/**
* Create a clone cell.
*
* @public
*/
export interface RequestCreateCloneCell {
type: "create_clone_cell";
value: CreateCloneCellRequest;
}
/**
* Disable a clone cell.
*
* @public
*/
export interface RequestDisableCloneCell {
type: "disable_clone_cell";
value: DisableCloneCellRequest;
}
/**
* Enable a disabled clone cell.
*
* @public
*/
export interface RequestEnableCloneCell {
type: "enable_clone_cell";
value: EnableCloneCellRequest;
}
/**
* Request network info.
*
* @public
*/
export interface RequestNetworkInfo {
type: "network_info";
value: NetworkInfoRequest;
}
/**
* Msgpack encoded request to call an app interface.
*
* @public
*/
export interface RequestCallAppInterfaceEncoded extends Omit<RequestCallAppInterface, "message"> {
message: Uint8Array;
}
/**
* App API Responses.
*
* @public
*/
export type AppApiResponse = AppApiResponseAppInfo | AppApiResponseMemproofsProvided | AppApiResponseZomeCall | AppApiResponseCloneCellCreated | AppApiResponseCloneCellEnabled | AppApiResponseCloneCellDisabled | AppApiResponseNetworkInfo;
/**
* @public
*/
export declare const AppApiResponseOk = "ok";
/**
* @public
*/
export interface AppApiResponseAppInfo {
type: "app_info";
value: AppInfoResponse;
}
/**
* @public
*/
export interface AppApiResponseMemproofsProvided {
type: typeof AppApiResponseOk;
}
/**
* @public
*/
export interface AppApiResponseZomeCall {
type: "zome_call";
value: Uint8Array;
}
/**
* @public
*/
export interface AppApiResponseCloneCellCreated {
type: "clone_cell_created";
value: CreateCloneCellResponse;
}
/**
* @public
*/
export interface AppApiResponseCloneCellEnabled {
type: "clone_cell_enabled";
value: EnableCloneCellResponse;
}
/**
* @public
*/
export interface AppApiResponseCloneCellDisabled {
type: "clone_cell_disabled";
value: DisableCloneCellResponse;
}
/**
* @public
*/
export interface AppApiResponseNetworkInfo {
type: "network_info";
value: NetworkInfoResponse;
}
/**
* Request a call to the Admin API.
*
* @public
*/
export interface RequestCallAdminInterface {
type: "call_admin_interface";
id: ConductorId;
message: RequestAdminInterfaceMessage;
}
/**
* Request type for fetching logs from a given conductor.
*
* @public
*/
export interface RequestDownloadLogs {
type: "download_logs";
id: ConductorId;
}
/**
* The types of all possible calls to the Admin API.
*
* @public
*/
export type RequestAdminInterfaceMessageType = "add_agent_info" | "agent_info" | "attach_app_interface" | "connect_app_interface" | "delete_clone_cell" | "disable_app" | "dump_full_state" | "dump_network_stats" | "dump_state" | "enable_app" | "generate_agent_pub_key" | "get_compatible_cells" | "get_dna_definition" | "grant_zome_call_capability" | "install_app" | "list_apps" | "list_app_interfaces" | "list_cell_ids" | "list_dnas" | "register_dna" | "revoke_agent_key" | "start_app" | "storage_info" | "uninstall_app" | "update_coordinators" | "issue_app_authentication_token";
/**
* All possible calls to the Admin API.
*
* @public
*/
export interface RequestAdminInterfaceMessage {
type: RequestAdminInterfaceMessageType;
value?: AddAgentInfoRequest | AgentInfoRequest | AttachAppInterfaceRequest | DeleteCloneCellRequest | DisableAppRequest | DumpFullStateRequest | DumpNetworkStatsRequest | DumpStateRequest | EnableAppRequest | GetCompatibleCellsRequest | GetDnaDefinitionRequest | GrantZomeCallCapabilityRequest | InstallAppRequest | ListAppsRequest | RegisterDnaRequest | RevokeAgentKeyRequest | StartAppRequest | StorageInfoRequest | UninstallAppRequest | UpdateCoordinatorsRequest | IssueAppAuthenticationTokenRequest;
}
/**
* All possible responses from the Admin API.
*
* @public
*/
export type AdminApiResponse = AdminApiResponseAgentInfo | AdminApiResponseAgentInfoAdded | AdminApiResponseAgentPubKeyGenerated | AdminApiResponseAppDisabled | AdminApiResponseAppEnabled | AdminApiResponseAppInstalled | AdminApiResponseAppInterfaceAttached | AdminApiResponseAppInterfacesListed | AdminApiResponseAppStarted | AdminApiResponseAppUninstalled | AdminApiResponseAppsListed | AdminApiResponseCellIdsListed | AdminApiResponseCloneCellDeleted | AdminApiResponseCoordinatorsUpdated | AdminApiResponseDnasDefinitionReturned | AdminApiResponseGetCompatibleCells | AdminApiResponseDnasListed | AdminApiResponseDnaRegistered | AdminApiResponseFullStateDumped | AdminApiResponseNetworkStatsDumped | AdminApiResponseAgentKeyRevoked | AdminApiResponseStateDumped | AdminApiResponseStorageInfo | AdminApiResponseAppAuthenticationTokenIssued | AdminApiResponseZomeCallCapabilityGranted;
/**
* @public
*/
export interface AdminApiResponseAgentInfo {
type: "agent_info";
value: AgentInfoResponse;
}
/**
* Delete a disabled clone cell.
*
* @public
*/
export interface RequestDeleteCloneCell {
type: "delete_clone_cell";
value: DeleteCloneCellRequest;
}
/**
* @public
*/
export interface AdminApiResponseDnaRegistered {
type: "dna_registered";
value: HoloHash;
}
/**
* @public
*/
export interface AdminApiResponseGetCompatibleCells {
type: "compatible_cells";
value: GetCompatibleCellsResponse;
}
/**
* @public
*/
export interface AdminApiResponseFullStateDumped {
type: "full_state_dumped";
value: FullStateDump;
}
/**
* @public
*/
export interface AdminApiResponseNetworkStatsDumped {
type: "network_stats_dumped";
value: DumpNetworkStatsResponse;
}
/**
* @public
*/
export interface AdminApiResponseStorageInfo {
type: "storage_info";
value: StorageInfoResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppAuthenticationTokenIssued {
type: "app_authentication_token_issued";
value: IssueAppAuthenticationTokenResponse;
}
/**
* @public
*/
export interface AdminApiResponseStateDumped {
type: "state_dumped";
value: DumpStateResponse;
}
/**
* @public
*/
export interface AdminApiResponseZomeCallCapabilityGranted {
type: "zome_call_capability_granted";
}
/**
* @public
*/
export interface AdminApiResponseAgentPubKeyGenerated {
type: "agent_pub_key_generated";
value: HoloHash;
}
/**
* @public
*/
export interface AdminApiResponseAgentKeyRevoked {
type: "agent_key_revoked";
value: RevokeAgentKeyResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppInstalled {
type: "app_installed";
value: AppInfo;
}
/**
* @public
*/
export interface AdminApiResponseAppEnabled {
type: "app_enabled";
value: EnableAppResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppDisabled {
type: "app_disabled";
value: DisableAppResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppStarted {
type: "app_started";
value: StartAppResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppUninstalled {
type: "app_uninstalled";
value: UninstallAppResponse;
}
/**
* @public
*/
export interface AdminApiResponseCoordinatorsUpdated {
type: "coordinators_updated";
value: UpdateCoordinatorsResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppsListed {
type: "apps_listed";
value: ListAppsResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppInterfacesListed {
type: "app_interfaces_listed";
value: ListAppInterfacesResponse;
}
/**
* @public
*/
export interface AdminApiResponseCellIdsListed {
type: "cell_ids_listed";
value: ListCellIdsResponse;
}
/**
* @public
*/
export interface AdminApiResponseDnasDefinitionReturned {
type: "dna_definition_returned";
value: DnaDefinition;
}
/**
* @public
*/
export interface AdminApiResponseDnasListed {
type: "dnas_listed";
value: ListDnasResponse;
}
/**
* @public
*/
export interface AdminApiResponseAppInterfaceAttached {
type: "app_interface_attached";
value: AttachAppInterfaceResponse;
}
/**
* @public
*/
export interface AdminApiResponseAgentInfoAdded {
type: "agent_info_added";
}
/**
* @public
*/
export interface AdminApiResponseCloneCellDeleted {
type: "clone_cell_deleted";
}