Seqera Platform SDK
evaluating
C
Charcoal Mandrill
In light of the recent announcement & development of a Seqera Platform Terraform Provider ( https://feedback.seqera.io/feature-requests/p/cli-tool-needs-an-export-all-import-all-function-or-a-terraform-like-state-manag ; https://github.com/seqeralabs/terraform-provider-seqera ) I thought this might be a good opportunity to extend the concept one step further and consider build a full scale Seqera Platform SDK. Similar to the one for AWS here https://github.com/aws/aws-sdk-go-v2
Since the underlying Terraform provider methods are essentially just hitting the API endpoints for Platform, and the provider is already written in Go by necessity for Terraform, it seems like it could be possible and appropriate to have the API client interface for Seqera Platform useable as an independent stand-alone Go library which could both be used by the Terraform provider, and imported for use in other custom programs.
This would be a very nice compliment to seqerakit https://github.com/seqeralabs/seqerakit and would expand the ways in which users could programmatically interface with Seqera Platform, and integrate Seqera Platform deeper into the rest of their custom internal infra stacks.
Andrew Dawson
Merged in a post:
Support embedding Seqera Platform functionality into custom web applications via API/SDK
C
Classic Capybara
Organizations building internal portals or custom bioinformatics UIs need to embed Seqera Platform capabilities (pipeline launching, run monitoring, data browsing) into their own applications. This requires a well-documented API, embeddable UI components or an SDK, and support for programmatic authentication. There is also the need for batch API updates across workspaces, reinforcing the need for a robust programmatic interface.
Andrew Dawson
updated the status to
evaluating
Andrew Dawson
Merged in a post:
Fix OpenAPI schema
M
Mint Eagle
I ran openapi-python-client to generate a Python package from the OpenAPI spec. I got the following warnings, which suggests that the definition file is not fully valid:
WARNING parsing POST /compute-envs within default. Endpoint will not be generated.
- Could not find reference in parsed models or enums
WARNING parsing GET /data-links within default.
- Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DataLinksListResponse')
WARNING parsing GET /data-links within default.
- Cannot parse response for status code 202 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DataLinksListResponse')
WARNING parsing POST /data-links within default.
- Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DataLinkDto')
WARNING parsing GET /data-links/{dataLinkId} within default.
- Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DataLinkResponse')
WARNING parsing PUT /data-links/{dataLinkId} within default.
- Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DataLinkDto')
WARNING parsing GET /workflow/{workflowId}/launch within default.
- Cannot parse response for status code 200 (Could not find reference in parsed models or enums), response will be omitted from generated client
- Reference(ref='#/components/schemas/DescribeWorkflowLaunchResponse')
Unable to process schema /components/schemas/ComputeEnv_ComputeConfig_:
- Cannot take allOf a non-object
- Failure to process schema has resulted in the removal of:
/components/schemas/ComputeEnv_ComputeConfig_
/components/schemas/CreateComputeEnvRequest
/components/schemas/WorkflowLaunchResponse
/components/schemas/DescribeWorkflowLaunchResponse
Unable to process schema /components/schemas/DataLinkDto:
- Cannot take allOf a non-object
- Failure to process schema has resulted in the removal of:
/components/schemas/DataLinkDto
/components/schemas/DataLinkResponse
/components/schemas/DataLinksListResponse
Rob Newman
updated the status to
acknowledged
Rob Newman
Is there a reason why you are not using
seqerakit
link to Git repo which is our Python SDK for the Platform? If there's a specific reason why you aren't, this is more a discussion topic in our community forum.M
Mint Eagle
Yes, it lacked some features I needed. I will post a separate issue about that, but this is still a bug in the OpenAPI schema, which will matter if trying to create a client in any other language.
Rob Newman
Mint Eagle: Thanks for the update. If some features in
seqerakit
are missing, can you outline them here so we can capture them? I'll also create a bug report for the OpenAPI spec issues for our internal team to review.