oscal-compass / compliance-to-policy-go

Compliance-to-Policy (C2P) provides the framework to bridge the gap between compliance and policy administration in Go.
Apache License 2.0
0 stars 1 forks source link

Implement support for externally developed plugins #2

Open jpower432 opened 1 week ago

jpower432 commented 1 week ago

Continuing the conversation originating from https://github.com/oscal-compass/compliance-to-policy/issues/23. The goal would be enable plugins to be developed externally without having to recompile C2P and reuse the plugins being developed in C2P Python.

Objectives

Define a plugin interface will allow externally developed plugins to be used with C2P core while allowing the reuse of existing plugins being developed in C2P Python.

Based on previous conversation with @yana1205, proposing the core plugin management logic be implemented in Go and the use of RPC based plugins.

Rationale

Completion Criteria

I have added some high-level features I am proposing to support below. Some are brand new to C2P and some are based on the features of C2P Python for consistency.

Parity with C2P Python

New

jpower432 commented 6 days ago

Adding a link to my fork where I am testing out some of these concepts - https://github.com/jpower432/compliance-to-policy-go/tree/feat/v2-module/v2