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

Added workflow response object to workflow creation call #409

Merged
merged 5 commits into from
Aug 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 58 additions & 26 deletions exchanges.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ components:
additionalProperties: false
description: Object containing information for creating a workflow.
properties:
workflowData:
config:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When creating a workflow, the config is the payload, it is not nested under config. I think we should have a WorkflowConfig object that can be referenced and used here as the direct payload and in other places where a config property is used to express it along with other side-by-side properties (like in the response / potentially other places) this object type can just be referenced -- rather than duplicating its rather long schema description.

type: object
additionalProperties: false
description: Object containing information for creating a workflow.
Expand Down Expand Up @@ -217,49 +217,81 @@ components:
type: string
template:
type: string
workflowId:
id:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

id can be optional within the WorkflowConfig object when creating a workflow, indicating either a preferred id (which some servers may honor, others may reject).

type: string
description: the ID that will be used for the created workflow. workflowId is OPTIONAL.
description: The ID that will be used for the created workflow. Passing an ID is OPTIONAL.
CreateWorkflowResponse:
type: object
additionalProperties: false
description: Object containing information about a created workflow.
description: Response containing the created workflow config Object.
properties:
workflowId:
type: string
description: The URL that uniquely identifies the created workflow.
config:
type: object
additionalProperties: false
description: Object containing information about a created workflow.
properties:
id:
type: string
description: The URL that uniquely identifies the created workflow.
steps:
type: object
description: One or more steps required to complete an exchange on the workflow.
properties:
stepName:
type: object
description: The name of the step.
properties:
step:
$ref: "#/components/schemas/WorkflowStep"
initialStep:
type: string
description: The step from the above set that the exchange starts on.
controller:
type: string
description: The controller of the instance. Returning controller is OPTIONAL.
authorization:
type: object
description: Authorization scheme information (e.g., OAuth2 configuration). Returning authorization is OPTIONAL.
credentialTemplates:
type: array
description: One or more VC templates for issuance. Returning credentialTemplates is OPTIONAL.
items:
type: object
properties:
type:
type: string
description: The type of template.
template:
type: string
description: The template itself.
GetWorkflowResponse:
type: object
additionalProperties: false
description: Object containing information about a workflow.
properties:
workflowData:
config:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expect this endpoint to return the WorkflowConfig directly as the response payload here.

type: object
additionalProperties: false
description: Object containing information about a created workflow.
properties:
stepInformation:
exchanges:
type: array
description: The identifiers of the current exchanges associated with the workflow instance.
items:
type: string
Comment on lines +277 to +281
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't expect this (exchanges) to ever be part of a WorkflowConfig -- and it may be very large in size anyway.

steps:
type: object
description: Information about the steps required for the workflow. Returning stepInformation is REQUIRED.
description: One or more steps required to complete an exchange on the workflow.
properties:
exchanges:
type: array
description: The identifiers of the current exchanges associated with the workflow instance.
items:
type: string
steps:
stepName:
type: object
description: One or more steps required to complete an exchange on the workflow.
description: The name of the step.
properties:
stepName:
type: object
description: The name of the step.
properties:
step:
$ref: "#/components/schemas/WorkflowStep"
initialStep:
type: string
description: The step from the above set that the exchange starts on.
step:
$ref: "#/components/schemas/WorkflowStep"
initialStep:
type: string
description: The step from the above set that the exchange starts on.
controller:
type: string
description: The controller of the instance. Returning controller is OPTIONAL.
Expand Down