Skip to content

Spike: How to migrate LB3 components #4099

@bajtos

Description

@bajtos

This is the first spike for #3955, see also #3718 and #3922.

Eventually, we want to write content for docs/site/migration/extensions.md and explain how can users migrate their custom LB3 components to LB4 extensions:

  • How to rewrite components from LB3 component to a LB4 extension?
  • How to migrate applications using such components/extensions?
  • What's our advice for apps using official loopback components like loopback-component-storage?

Before we can write such migration guide, we need to build a better understanding of how a typical LB3 component look like, what kind of features & functionalities are contributed by existing LB3 components (including 3rd party modules) and how to map such functionality to LB4 concepts.

Unfortunately, our documentation for LB3 component authors is rather short, see LoopBack components and Creating components

Acceptance criteria

Initial research

Action plan

  • For each feature/pattern found in existing components, propose how to implement it in LB4 style. Some patterns may require functionality that's not available in LB4 yet. This is expected, put down a note and try to link to existing GitHub issues where possible. (Do not create any new issues yet!) Get the proposals reviewed & approved by the team before moving to the next step.

  • Propose a plan - create a list of follow-up tasks. Some of these tasks may be "implement a feature we already have a GitHub issue for", some of the tasks may be "create a new GH issue to implement a missing feature". Don't forget to describe tasks for writing the migration guide too, e.g. "write a skeleton/outline", "fill content for section XYZ", etc.

List of areas to cover:

Out of scope

Migration of the following component is out of scope of this spike:

  • OAuth2 - will be covered by auth&auth migration guide
  • Passport - will be covered by auth&auth migration guide
  • Synchronization - won't be implemented in LB4. It's important to mention this fact in the migration guide.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions