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

Separate metadata from representations #699

Open
12 tasks
sbegaudeau opened this issue Aug 16, 2021 · 0 comments · May be fixed by #1185
Open
12 tasks

Separate metadata from representations #699

sbegaudeau opened this issue Aug 16, 2021 · 0 comments · May be fixed by #1185

Comments

@sbegaudeau
Copy link
Member

Problem

Our GraphQL API provides too many ways to retrieve a representation. All those APIs are unused and not really useful either. Their existence for us to provide the ability to manipulate a complete representation are various parts of our APIs. Providing only the metadata would be more useful.

Solution

We will replace the manipulation of the representations at various places of our API by their metadata only.

Cutting backs

Rabbit holes

No-gos

Test

  • Automated developer tests merged and pass (with reasonable code coverage)
  • Automated End-to-End tests merged and pass (Cypress)
  • Feature/bug fix manually tested/validated by at least one person not involved in the implementation
  • Collaborative tests passed by hand
  • Exploratory test passed by MEB
  • Business acceptance test passed by MEB

Doc

  • Internal Doc updated
  • External Doc updated
  • Validation Doc updated

UX/UI

  • Zeroheight updated
  • Storybook updated

Next

  • Any left-over tasks in the Github issues
@sbegaudeau sbegaudeau added this to the 0.5.0 milestone Aug 16, 2021
@sbegaudeau sbegaudeau self-assigned this Aug 16, 2021
@pcdavid pcdavid pinned this issue Sep 9, 2021
pcdavid added a commit that referenced this issue Sep 10, 2021
In almost all locations where we used to return a full
Representation (or a concrete Diagram), only expose the new
RepresentationMetadata type. The only exception is in the
subscription, where we actually *need* the full representation's
content.

This ensures the underlying's representation content (e.g. the
nodes/edges/etc. on a diagram) can not be accessed by the frontend
except in the specific case where it is needed.

This change is purely on the GraphQL Schema level and does not change
anything to which Java objects are loaded/manipulated on the backend.
It just makes sure that except for the case of refresh events, only
the metadata fields can be requested by and returned to the frontend.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
This is static information that has no reason to be on the diagram
itself.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
… along with it

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
Except for passing it around and putting it into the concrete Diagram
data structure, it was not used anywhere as all callers have been
migrated to use IRepresentationMetadata.getDescriptionId() instead.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Sep 10, 2021
IReprensentationMetadata.kind replaces it.

Note that persistent representations (Diagram and Form) still need a
kind field for the moment as it is used by
IRepresentationDeserializer.canHandle() to determine which
deserializer to use for a given JSON content.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
@pcdavid pcdavid linked a pull request Sep 20, 2021 that will close this issue
@pcdavid pcdavid unpinned this issue Oct 4, 2021
@sbegaudeau sbegaudeau modified the milestones: 0.5.0, 0.6.0 Oct 7, 2021
@pcdavid pcdavid pinned this issue Oct 13, 2021
pcdavid added a commit that referenced this issue Nov 4, 2021
In almost all locations where we used to return a full
Representation (or a concrete Diagram), only expose the new
RepresentationMetadata type. The only exception is in the
subscription, where we actually *need* the full representation's
content.

This ensures the underlying's representation content (e.g. the
nodes/edges/etc. on a diagram) can not be accessed by the frontend
except in the specific case where it is needed.

This change is purely on the GraphQL Schema level and does not change
anything to which Java objects are loaded/manipulated on the backend.
It just makes sure that except for the case of refresh events, only
the metadata fields can be requested by and returned to the frontend.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Nov 4, 2021
This is static information that has no reason to be on the diagram
itself.

Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
@pcdavid pcdavid unpinned this issue Dec 2, 2021
pcdavid added a commit that referenced this issue Dec 8, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
pcdavid added a commit that referenced this issue Dec 16, 2021
Bug: #699
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
@sbegaudeau sbegaudeau removed this from the 2022.01.0 milestone Jan 13, 2022
sbegaudeau added a commit that referenced this issue Feb 6, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 6, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 6, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 6, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Feb 7, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue Apr 25, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
@sbegaudeau sbegaudeau linked a pull request Apr 25, 2022 that will close this issue
39 tasks
sbegaudeau added a commit that referenced this issue Apr 26, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
@sbegaudeau sbegaudeau linked a pull request Apr 26, 2022 that will close this issue
39 tasks
@sbegaudeau sbegaudeau added this to the 2022.5.0 milestone Apr 26, 2022
sbegaudeau added a commit that referenced this issue May 11, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
sbegaudeau added a commit that referenced this issue May 11, 2022
Bug: #699
Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
@sbegaudeau sbegaudeau removed this from the 2022.5.0 milestone Jun 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment