Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Falco (gRPC) API #818

Closed
krisnova opened this issue Sep 6, 2019 · 3 comments
Closed

The Falco (gRPC) API #818

krisnova opened this issue Sep 6, 2019 · 3 comments

Comments

@krisnova
Copy link
Contributor

krisnova commented Sep 6, 2019

**What do we mean by "API"*?

The language here implies a documented way of interfacing with Falco, regardless of the programming language.

This is NOT a traditional C/C++ API that we would see in a .h file like we would see in linux or other similar applications.

This is more of a high-level spec or contract (probably implemented via gRPC) that users can count on using, while interacting with the falco core engine. This is similar to a REST API.

The goals would be:

  • Any language can consume this via a well-known protocol like gRPC
  • We version this "API" over time, as we make breaking and non-backwards compatible changes
  • This is more "documentation" than "implementation" (think inputs/outputs)

What would you like to be added:

The concept of an officially supported falco API spec/documentation via a protocol.

This implies alot. Let's look at the envoy project for a quick example. The entire application is configurable via an API. You can see some documentation here. The program is also written in C++ and is commonly vendored throughout the cloud native ecosystem. We should look at enabling our users in the same way.

Why is this needed:

So that non-C++ programers can easily interface, control, and take advantage of the falco system. This would enable a powerful (and extremely fast) eventing system built on falco using the sysdig libraries libsinsp and libscap.

So that users who wish to take advantage of the falco OSS tool can begin to build out their own inputs/outputs/rules for falco (either via falcoctl* or via their own device)

So that we can begin to define the boundaries for falco and what the engine is and isn't responsible for.

Notable references for this:

#811
#789
#785
#528
#529
#531

@krisnova krisnova changed the title The Falco API The Falco (gRPC) API Sep 6, 2019
@fntlnz
Copy link
Contributor

fntlnz commented Sep 9, 2019

/priority high

@fntlnz
Copy link
Contributor

fntlnz commented Sep 10, 2019

/assign @fntlnz
/assign @leodido

@fntlnz fntlnz added this to the 0.18.0 milestone Sep 10, 2019
@leodido
Copy link
Member

leodido commented Sep 25, 2019

First gRPC server impl done in #822

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants