Skip to content

Commit

Permalink
chore(content): plugins section adjustments
Browse files Browse the repository at this point in the history
Signed-off-by: Leonardo Grasso <[email protected]>
  • Loading branch information
leogr committed Dec 17, 2024
1 parent b7e201b commit cc446f8
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 32 deletions.
8 changes: 3 additions & 5 deletions content/en/docs/concepts/plugins/_index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
---
title: Falco Plugins
linktitle: Plugins
description: Extend Falco functionality using Plugins for Falco libraries/Falco daemon
description: Extend Falco functionality using Plugins
weight: 40
aliases:
- ../plugins
---

The Falco libraries and Falco itself can be extended by using *Plugins*. Plugins are shared libraries that conform to a documented API, hooking into the core functionalities of Falco to allow things such as:
Expand All @@ -13,7 +15,3 @@ The Falco libraries and Falco itself can be extended by using *Plugins*. Plugins
- Injecting events asynchronously in a given data stream.

This section describes how plugins fit into the existing event processing pipeline and how to enable/configure plugins in Falco.

{{% alert color=primary %}}
If you're interested in how this feature came about, you can view the [original proposal](https://github.com/falcosecurity/falco/blob/master/proposals/20210501-plugin-system.md) for the plugin system.
{{% /alert %}}
2 changes: 2 additions & 0 deletions content/en/docs/concepts/plugins/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ title: Plugins Architecture Concepts
linktitle: Architecture
description: Learn the basic concepts of the Plugin Architecture
weight: 10
aliases:
- ../plugins/architecture
---

## Overview
Expand Down
6 changes: 4 additions & 2 deletions content/en/docs/concepts/plugins/usage.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
---
title: How Falco Uses Plugins
linktitle: Plugins Usage
linktitle: Usage
description: Plugins for Falco libraries/Falco daemon
weight: 20
aliases:
- ../plugins/usage
---

Falco loads plugins based on configuration in [`falco.yaml`](https://github.com/falcosecurity/falco/blob/master/falco.yaml). Currently, if a plugin with event sourcing capability is loaded then the *only* events processed are from that plugin; syscall events are disabled. There are other restrictions on loaded plugins (see below).
Expand Down Expand Up @@ -65,4 +67,4 @@ Falco can load multiple rules files, and each file may contain its own `required

## Plugin Developer's Guide

If you are interested in authoring your own plugin, or modifying an existing plugin to add new functionality, we've written a [developer's guide](/docs/plugins/developers-guide) that documents the full plugin APIs and walks through two existing plugins to show how the API is used.
If you are interested in authoring your own plugin, or modifying an existing plugin to add new functionality, we've written a [developer's guide](/docs/developer-guide/plugins) that documents the full plugin APIs and walks through two existing plugins to show how the API is used.
25 changes: 0 additions & 25 deletions content/en/docs/concepts/plugins/where-code.md

This file was deleted.

27 changes: 27 additions & 0 deletions content/en/docs/developer-guide/plugins/sdks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: Plugins SDKs
linktitle: SDKs
description: Available Falco Plugins SDKs
weight: 15
---

## Plugins SDKs

To facilitate the development of plugins, The Falco Project provides SDKs for multiple programming languages: Go, C++, and Rust. These SDKs provide flexibility for developers to choose the programming language they are most comfortable with while ensuring a consistent and streamlined experience when building Falco plugins.

### C++ SDK
The [C++ SDK](https://github.com/falcosecurity/plugin-sdk-cpp) provides abstract base classes for plugin development. Plugin authors can derive from these base classes and implement abstract methods to:
- Supply plugin metadata and capabilities.
- Provide events.
- Extract fields from events.

### Go SDK
We offer a [Go SDK](https://github.com/falcosecurity/plugin-sdk-go) that simplifies plugin development by providing support code and abstractions. This SDK includes:
- Go structs and enums corresponding to the C structs and enums used by the plugin API.
- Utility packages to handle memory management and type conversions.
- Abstract interfaces that provide a streamlined and user-friendly way to implement plugins.

For a detailed explanation of the architecture and usage of the Go SDK, refer to the [Go SDK walkthrough section](/docs/plugins/go-sdk-walkthrough).

### Rust SDK
We recently introduced a [Rust SDK](https://github.com/falcosecurity/plugin-sdk-rs), enabling developers to write plugins in Rust. The Rust SDK offers a safe, idiomatic interface for interacting with the Falco plugin API while leveraging Rust’s strong type system and memory safety guarantees.

0 comments on commit cc446f8

Please sign in to comment.