edgeless-project / edgeless

MVP Implementation
Other
14 stars 0 forks source link

Refactor FunctionClassSpecification #140

Closed ccicconetti closed 4 months ago

ccicconetti commented 4 months ago

Recap: the FunctionClassSpecification struct is the following:

pub struct FunctionClassSpecification {
    pub function_class_id: String,
    pub function_class_type: String,
    pub function_class_version: String,
    pub function_class_inlude_code: Vec<u8>,
    pub outputs: Vec<String>,
}

Personal view/understanding/comment:

ccicconetti commented 4 months ago

@lukasz-zet does this align with your view?

@raphaelhetzel what do you think?

raphaelhetzel commented 4 months ago

outputs is going to be used for static analysis. It allows the orchestrator / CLI to verify that only existing outputs are used and that all outputs are used. Do not remove that, it will be used later. We can also change that to something like function signature.

class_id, version, and type are required once we have a repository/fetching.

I would assume we will want to keep include around after the repo, obviously without the typo :D

ccicconetti commented 4 months ago

outputs is going to be used for static analysis. It allows the orchestrator / CLI to verify that only existing outputs are used and that all outputs are used. Do not remove that, it will be used later. We can also change that to something like function signature.

OK, let's keep it then.

I think function_outputs is easier to understand than function_signature, since it matches well the output_mapping field in the workflow spec, wdyt?

class_id, version, and type are required once we have a repository/fetching.

Yes, of course.

I would assume we will want to keep include around after the repo, obviously without the typo :D

Yeah. The obvious default is that it will be empty if no code is bundled with the request.