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

Add Project Create API on KG #1635

Closed
19 tasks done
jachro opened this issue Jul 27, 2023 · 0 comments · Fixed by #1642
Closed
19 tasks done

Add Project Create API on KG #1635

jachro opened this issue Jul 27, 2023 · 0 comments · Fixed by #1642

Comments

@jachro
Copy link
Contributor

jachro commented Jul 27, 2023

As a renku-graph API user, I'd like the knowledge-graph exposes a Project Create API that performs all the necessary backend operation for a user.

The problem
Apparently, the project creation process is slightly complex and requires certain steps to happen in order. While it's possible to do all the work in the UI it's rather a backend task and what's probably more important would need to be replicated in all the renku clients.

Acceptance criteria:

  • The KG service to expose a new POST projects API
    • The API to take all the relevant properties in the payload (to be defined precisely by finding out the bare minimum needed by the Core API)
    • The API to expect a GL auth token can be used against the Core API
    • The API to enforce user authentication in GL
    • The API to block until all the operations are finished
    • The API to return 201 CREATED for successful creation
    • The API to return 400 BAD_REQUEST for invalid payload
    • The API to return 400 BAD_REQUEST in case the project already exists (additional call to GL needs to be done to check this)
    • The API to return 401 UNAUTHORIZED for auth failures
    • The API to return 500 INTERNAL_SERVER_ERROR for failures during creation
    • The API to pass eventual error messages coming from the external calls back to the caller
    • The API to call the GL Create Project API The project is created in GL by Core's templates.create_project API
    • The API to call the Core templates.create_project API
    • The API to wait for the project to be available (GL's Project Details API to return 200 OK) The API to create the project in the TS - no explicit waiting/polling needed
    • The API to activate the project with the webhook service
    • The API to wait for the project to be available in the TS (KG's Project Details API to return 200 OK) No need for waiting for the activation by calling the Project Details API as the project is created in the TS by a direct call
    • The API to call the KG's Project Update API to adjust visibility, images and other properties that are not set during creation
    • Create OpenAPI docs and update the README
    • write graph renku acceptance tests
@jachro jachro converted this from a draft issue Jul 27, 2023
@jachro jachro moved this from Ready to In Progress in KG's kanban Aug 3, 2023
@jachro jachro moved this from In Progress to Ready in KG's kanban Aug 3, 2023
@jachro jachro moved this from Ready to In Progress in KG's kanban Aug 31, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in KG's kanban Sep 15, 2023
@jachro jachro removed this from KG's kanban Sep 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant