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

Set "REQUIRED" field behaviour flag for fields in minder protos #4952

Open
eleftherias opened this issue Nov 12, 2024 · 2 comments
Open

Set "REQUIRED" field behaviour flag for fields in minder protos #4952

eleftherias opened this issue Nov 12, 2024 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@eleftherias
Copy link
Contributor

For clients using the openAPI spec, it would be useful to know which input fields are required and which output fields are non-nullable.

We can use the REQUIRED field_behaviour flag to annotate these types of fields.

For example by setting the behaviour to REQUIRED, the typescipt generated field is non-optional:

message Provider {
    // name is the name of the provider.
    string name = 1 [
        (google.api.field_behavior) = REQUIRED
    ];

produces the following typescipt type (note that it does not have a ? marking it as optional):

type v1Provider = {
    /**
     * name is the name of the provider.
     */
    name: string;
}

This task involves finding all the fields that are both required as input AND non-nullable as output.

⚠️ Note that we reuse several messages as inputs and outputs.
We can only set the REQUIRED flag on fields that are both required on input AND never null on output.
If a field is required on input, but may be null on output, we cannot use this flag.

@eleftherias
Copy link
Contributor Author

I'm starting from the top of the minder.proto file and working my way through all the messages.
I'll list all the messages that are completed here to avoid any duplicate work.
So far a PR has been created for:

  • Cursor
  • CursorPage

@eleftherias
Copy link
Contributor Author

PR created for:

  • ListArtifactsRequest
  • ListArtifactsResponse
  • Artifact
  • ArtifactVersion
  • GetArtifactByIdRequest
  • GetArtifactByIdResponse
  • GetArtifactByNameRequest
  • GetArtifactByNameResponse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant