Instead of implementing the raw generated Guest trait from witbindgen, skyforge should offer its own plugin SDK.
Description
The plugin SDK should offer users the ability to communicate through a function hook system and interface with the rust CLI, seamlessly.
It should make plugins as easy to write as possible so that users can focus on the implementation details of the cloud provider and not have to worry about things like:
Interpreting starlark structures and functions (at all if possible)
Worrying about having to implement the raw wit_bindgen generated Guest trait. These details can be hidden under the hood.
Acceptance Criteria
This is an EPIC, and as such is hard to specifically point to an acceptance criteria since the initial interface still needs to be defined. However, we can outline a few key points.
~Initially, add a structure to the SDK with a procedural macro that can generate implementations that hide the Guest trait implementation under the hood.~
Define the interface of the plugin and its methods both for interpreting starlark code and for parsing and creating resources.
Users should not have to worry about starlark interpretation of their commands, these things should be generated by a proc macro
Context
Instead of implementing the raw generated Guest trait from witbindgen, skyforge should offer its own plugin SDK.
Description
The plugin SDK should offer users the ability to communicate through a function hook system and interface with the rust CLI, seamlessly. It should make plugins as easy to write as possible so that users can focus on the implementation details of the cloud provider and not have to worry about things like:
Acceptance Criteria
This is an EPIC, and as such is hard to specifically point to an acceptance criteria since the initial interface still needs to be defined. However, we can outline a few key points.