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

feat: Add support for provisioning of tool models #1901

Merged
merged 1 commit into from
Nov 19, 2024

Conversation

MoritzWeber0
Copy link
Member

@MoritzWeber0 MoritzWeber0 commented Oct 11, 2024

The already known provisioning feature for read-only sessions will be extended to persistent workspace sessions.

Per session, a user can request a persistent workspace session and can pass optionally one model to provision. It's not possible to provision more than one model (aka one Git repository).

The provisioning takes place once. We'll not touch the provisioned workspace until the user explicently resets the provisioning. The provisioning revision and date are stored in the database.

When the users reset their workspace, we'll remove the provisioning model from the database. During the next session start, the matching workspace will be re-initialized and a copy will be saved to a .bak directory.

This feature is essential for the start-up of trainings.

TODO:

  • Fix UI layout of project detail page
  • Add own project detail page for trainings
  • Add new data structure for tools in projects. Tools in projects indicate which tools are used in a project, even if not used in a model
  • Group provisioning by tools
  • Load README.md from repository
  • Provision into tool directory
  • Add supported project types configuration to tools (oos)
  • Write tests
  • Write stories
  • Fix size of skeleton loader
  • Add docs for provisioning and training
  • Check permissions

Copy link

The generated OpenAPI client is not up to date with the latest changes in the OpenAPI specification.
Please run make openapi locally and commit the changes.

Copy link

github-actions bot commented Oct 11, 2024

API Changelog 4.13.1.dev60+gc2898fa5

GET /api/v1/projects/{project_slug}/models

  • added the required property '/items/tool/config/provisioning/required' to the response with the '200' status

POST /api/v1/projects/{project_slug}/models

  • added the required property 'tool/config/provisioning/required' to the response with the '200' status

GET /api/v1/projects/{project_slug}/models/{model_slug}

  • added the required property 'tool/config/provisioning/required' to the response with the '200' status

PATCH /api/v1/projects/{project_slug}/models/{model_slug}

  • added the required property 'tool/config/provisioning/required' to the response with the '200' status

DELETE /api/v1/projects/{project_slug}/models/{model_slug}/provisioning

  • endpoint added

GET /api/v1/projects/{project_slug}/models/{model_slug}/provisioning

  • endpoint added

GET /api/v1/projects/{project_slug}/models/{model_slug}/readme

  • endpoint added

GET /api/v1/projects/{project_slug}/tools

  • endpoint added

POST /api/v1/projects/{project_slug}/tools

  • endpoint added

DELETE /api/v1/projects/{project_slug}/tools/{project_tool_id}

  • endpoint added

GET /api/v1/sessions

  • added the required property '/items/version/tool/config/provisioning/required' to the response with the '200' status

POST /api/v1/sessions

  • ⚠️ the 'connection_method_id' request property type/format changed from 'string'/'' to ''/''
  • ⚠️ the 'provisioning/items/revision' request property type/format changed from 'string'/'' to ''/''
  • added the new optional request property 'project_slug'
  • added 'subschema 1, subschema 2' to the 'connection_method_id' request property 'anyOf' list
  • added 'subschema 1, subschema 2' to the 'provisioning/items/revision' request property 'anyOf' list
  • the request property 'connection_method_id' became optional
  • the request property 'provisioning/items/revision' became optional
  • added the required property 'version/tool/config/provisioning/required' to the response with the '200' status

GET /api/v1/sessions/{session_id}

  • added the required property 'version/tool/config/provisioning/required' to the response with the '200' status

GET /api/v1/tools

  • added the required property '/items/config/provisioning/required' to the response with the '200' status

POST /api/v1/tools

  • added the new optional request property 'config/provisioning/required'
  • added the required property 'config/provisioning/required' to the response with the '200' status

GET /api/v1/tools/*/versions

  • added the required property '/items/tool/config/provisioning/required' to the response with the '200' status

GET /api/v1/tools/default

  • added the required property 'config/provisioning/required' to the response with the '200' status

GET /api/v1/tools/{tool_id}

  • added the required property 'config/provisioning/required' to the response with the '200' status

PUT /api/v1/tools/{tool_id}

  • added the new optional request property 'config/provisioning/required'
  • added the required property 'config/provisioning/required' to the response with the '200' status

GET /api/v1/users/{user_id}/sessions

  • added the required property '/items/version/tool/config/provisioning/required' to the response with the '200' status

This comment has been minimized.

@MoritzWeber0 MoritzWeber0 marked this pull request as draft October 11, 2024 16:12

This comment has been minimized.

This comment has been minimized.

Copy link

github-actions bot commented Oct 22, 2024

A Storybook preview is available for commit c2898fa.
➡️ View Storybook
➡️ View Chromatic build

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@MoritzWeber0 MoritzWeber0 force-pushed the training-sessions branch 4 times, most recently from 7c52ca2 to 88437a7 Compare October 29, 2024 16:21

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@MoritzWeber0 MoritzWeber0 force-pushed the training-sessions branch 2 times, most recently from 0b80ff3 to 9e672fd Compare November 12, 2024 13:18

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

@MoritzWeber0 MoritzWeber0 force-pushed the training-sessions branch 3 times, most recently from 57ff990 to bee5a33 Compare November 13, 2024 13:00

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

This comment has been minimized.

The already known provisioning feature for read-only sessions will
be extended to persistent workspace sessions.

Per session, a user can request a persistent workspace session and can
pass optionally one model to provision. It's not possible to provision
more than one model (aka one Git repository).

The provisioning takes place once. We'll not touch the provisioned
workspace until the user explicently resets the provisioning.
The provisioning revision and date are stored in the database.

When the users reset their workspace, we'll remove the provisioning
model from the database. During the next session start, the matching
workspace will be re-initialized and a copy will be saved to a `.bak` directory.

This feature is essential for the start-up of trainings.
Copy link

sonarcloud bot commented Nov 19, 2024

Copy link

ArtifactName: reg

Failed to find a target artifact.
All items will be treated as new items and will be used as expected data for the next time.

target not found

item count
new 412

@MoritzWeber0 MoritzWeber0 merged commit ee3864f into main Nov 19, 2024
31 checks passed
@MoritzWeber0 MoritzWeber0 deleted the training-sessions branch November 19, 2024 11:24
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 this pull request may close these issues.

Reset a pre-provisioned workspace Initialize training setup, spawn related sessions
2 participants