Skip to content

[Notebook Migration] Add notebook-migration-service for Texera and Jupyter communication and Database communication #5257

@zyratlo

Description

@zyratlo

Task Summary

Introduce the microservice that mediates between Texera and the JupyterLab docker stack (landed in migration-tool-jupyter-docker).

Scope

Adds a new SBT subproject notebook-migration-service plus shared config and a frontend proxy route:

  • notebook-migration-service/build.sbt, project/build.properties — module SBT setup.
  • src/main/scala/.../NotebookMigrationService.scala — Dropwizard Application entry; serves at /api/* on port 9098, registers the resource, initializes the shared DB connection from StorageConfig.
  • src/main/scala/.../NotebookMigrationServiceConfiguration.scala — Dropwizard Configuration subclass.
  • src/main/scala/.../resource/NotebookMigrationResource.scala — five REST endpoints under /notebook-migration:
    • GET /get-jupyter-url
    • GET /get-jupyter-iframe-url
    • POST /set-notebook (pushes a notebook into JupyterLab via its /api/contents API)
    • POST /store-notebook-and-mapping (persists notebook + workflow-notebook mapping to Postgres)
    • POST /fetch-notebook-and-mapping (retrieves the latest pair for a workflow/version).
  • src/main/resources/logback.xml, notebook-migration-service-web-config.yaml — logging and Dropwizard server config.
  • Root build.sbt — registers the subproject in the TexeraProject aggregation
  • common/config/src/main/resources/storage.conf + StorageConfig.scala — new jupyter { url = "http://localhost:9100" } block with STORAGE_JUPYTER_URL override, accessed by the resource as StorageConfig.jupyterURL.
  • frontend/proxy.config.json — routes /api/notebook-migration/* to http://localhost:9098 for dev.

Task Type

  • Refactor / Cleanup
  • DevOps / Deployment / CI
  • Testing / QA
  • Documentation
  • Performance
  • Other

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions