Skip to content

o2S2PARC API, S-D12, Y3M5 #16

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

Closed
4 of 6 tasks
KZzizzle opened this issue Sep 25, 2019 · 5 comments
Closed
4 of 6 tasks

o2S2PARC API, S-D12, Y3M5 #16

KZzizzle opened this issue Sep 25, 2019 · 5 comments
Assignees
Labels
PO issue Created by Product owners
Milestone

Comments

@KZzizzle
Copy link
Contributor

KZzizzle commented Sep 25, 2019

o2S2PARC API REST API and Python Interface to o2S2PARC

  • a REST API for o2S2PARC exists that permits scripted access and use of o2S2PARC
  • a corresponding Python client has been implemented

From ITISFoundation/osparc-simcore#503

Background
Allow oSPARC use through a non-GUI API (scripting, other). This includes creating a REST API as well as a Python client.

Definition of Done
Python interface can be used for:

  • authentication
  • load/save project
  • setup pipeline
  • display/export results
@KZzizzle KZzizzle added the PO issue Created by Product owners label Sep 25, 2019
@pcrespov
Copy link
Member

pcrespov commented Feb 5, 2020

Update Brown Islands sprint:

  • Implementing two API gateways. One for the web application (osparc.io) and another for public use (i.e. third-parties and/or our python sdk)
    image

@odeimaiz
Copy link
Member

odeimaiz commented Feb 11, 2020

Update Mythos sprint

  1. Web API Gateway:

    • cleanup API
    • starting designing decoupling
  2. Public API Gateway:

    • front-end: Create tokens from Preferences window. CreateKey
    • back-end: implements a concept but not integrated
      - Authenticate (oauth2 with client credentials flow)
      - List studies (access control: roles)
      - fancy doc and interactive doc
  3. Python client: prototype autogenerated from OAS. Evaluated options but not convinced it is the best solution.

@odeimaiz odeimaiz added this to the Mithos milestone Feb 11, 2020
@sanderegg sanderegg modified the milestones: Mithos, Dim Sum Mar 19, 2020
@KZzizzle KZzizzle modified the milestones: Dim Sum, Zhong Zi Apr 16, 2020
@pcrespov
Copy link
Member

pcrespov commented Apr 27, 2020

Update Mid-sprint Zhong Zi

Current Status

  • standalone service for public API gateway [ongoing]
    • Minimal API published to fulfill user-story
    • Auto-documentation with client-sdk examples (see below)
  • python client SDK [ongoing]
    • prototype autogenerated from OAS does not offer best solution.
    • building a template generator
  • prototype of front-end UI to create API tokens (see above)
  • emphasis in maintainability
  • connected front-end UI with webserver

Next Steps

  • release beta version of python-sdk to (human) testers (black/blue team?). Feedback shall
    • complete documentation
    • refine interface
    • fix issues

Given that now we enabled two ways to access osparc functionality (i.e. via public API and website), we need some continues refactoring on the backend as the API extends. For instance:

  • connect public gateway service to backend core services
  • detaching functionality from web-server service and delegating to other micro-services. e.g.
    • authentication service: responsible to centralize all authorization
    • projects management: responsible of user studies

image.png

@KZzizzle KZzizzle modified the milestones: Zhong Zi, Chrigel Maurer May 15, 2020
@pcrespov
Copy link
Member

pcrespov commented Jun 8, 2020

Update on C.Maurer sprint for review

Current Status

The infrastructure for the osparc public API is complete*:

  • osparc exposes a public RESTful API. The url depends on the deployed environment, e.g. api.osparc.io or api.staging.osparc.io (see details )
  • A python client SDK is publicly available with instructions/examples; and can be installed in python3.
  • User can obtain credentials for the API directly in the UI under Preferences -> API Keys menu
  • Interactive documentation is available online for testing and reference

Currently only minimal functionality has been exposed in order to

  • wait for a stable version of new ongoing features, like organizations, collaboration, etc
    which are currently under development
  • Test maintainability of the designed workflow: from openapi specifications -> server stub -> client SDK.
  • Further split functionality in backend services. Until now, all services were dedicated to a single web client. This is one of the biggest challenges of this case.

Next steps

The API will be in constant evolution and hand-in-hand with new planned features. For that reason there will be a constant work on

  • improving release workflow and maintainability for the framework
  • Splitting functionality in the backend between public and web APIs.

* NOTE PR is under review, expected deployment in master in the coming days and in staging by the end of the coming sprint.

@esraneufeld
Copy link
Member

see as well the related comments at the bottom of #68 (running s4l simulations on osparc by button press). this could be a use case for the api

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PO issue Created by Product owners
Projects
None yet
Development

No branches or pull requests

5 participants