@gbaud/kibana-client
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

Kibana Client

This package is used to connect and chat with the Kibana API

Here is the list of currently implemented endpoints:

// https://www.elastic.co/guide/en/kibana/current/cases-api-add-comment.html
addCommentToCase(caseId: string, commentInput: CommentInput): Promise<Case> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-create.html
createCase(caseInput: CaseInput): Promise<Case> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-delete-cases.html
deleteCases(caseIds: string[]): Promise<boolean> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-delete-comments.html
deleteCommentFromCase(caseId: string, commentId: string): Promise<boolean> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-delete-comments.html
deleteAllCommentsFromCase(caseId: string): Promise<boolean> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-find-cases.html
findCases(findCasesQuery: FindCasesQuery): Promise<Case[]> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-find-connectors.html
findConnectors(): Promise<Connector[]> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-alerts.html
getCaseAlerts(caseId: string): Promise<Alert[]> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-case.html
getCase(caseId: string, includeComments: boolean = true): Promise<Case> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-status.html
getCaseStatus(caseId: string, owners?: OwnerType[]): Promise<CaseStatus> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-cases-by-alert.html
getCasesByAlert(alertId: string, owners?: OwnerType[]): Promise<CaseStatus> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-comments.html
getCaseComment(caseId: string, commentId: string): Promise<Comment> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-comments.html
getReporters(owners?: OwnerType[]): Promise<User[]> {}

// https://www.elastic.co/guide/en/kibana/current/cases-api-get-tag.html
getTags(owners?: OwnerType[]): Promise<string[]> {}

Examples :

// Setup client configuration :
const config: KibanaConfig = new KibanaConfig("http://localhost:5601", "elastic", "elastic", "default");
const client: KibanaClient = new KibanaClient(config);

// Exemple case :
const newCase: CaseInput = {
	assignees: [],
	connector: {
		fields: null,
		id: "none",
		name: "none",
		type: ConnectorType.NONE
	},
	description: "No description",
	owner: OwnerType.SECURITY_SOLUTION,
	settings: {
		syncAlerts: true
	},
	severity: Severity.HIGH,
	tags: ["example_tag"],
	title: "Case Title"
};

// Create new case:
await client.createCase(newCase).then(async value => {

	// Delete the case:
	const caseId = value.id;
	await client.deleteCases([case_id]).then((r: boolean) = {
		console.log(`Delete case ${case_id}`);
	}).catch(e => console.log(e));
}).catch(e => console.log(e));

Package Sidebar

Install

npm i @gbaud/kibana-client

Weekly Downloads

21

Version

1.1.1

License

ISC

Unpacked Size

40.4 kB

Total Files

48

Last publish

Collaborators

  • gbaud