Skip to end of banner
Go to start of banner

Entity Type Migration

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Currently, there are eighteen entity types supported in Synapse but most of those types are old and have been unofficially deprecated for a few years now.  We have not provided the means to convert these old entities to the new types so there are many of these old object in Synapse.

Since each client can encounter one of these old objects at any time, client developers have be forced to support both the 'old' way and the 'new' way of working with entities for years now.  This adds complexity and increases the support cost for each client.  This document outlines a plan for migrating all old types into the types we currently support in Synapse.

 

Entity types as of 2/2/15:

Alias(es)Full NameContainerLocationableStatuscountLast ModifiedValid Parents

dataset, study

org.sagebionetworks.repo.model.StudytruetrueDeprecated114792015-01-13 04:05:16folder, project
layer, dataorg.sagebionetworks.repo.model.DatafalsetrueDeprecated8355322015-01-28 23:10:06folder, project, study
projectorg.sagebionetworks.repo.model.ProjecttruefalseSupported89642015-01-28 23:25:29root only
previeworg.sagebionetworks.repo.model.PreviewfalsefalseDeprecated932012-01-19 05:52:23folder, data
folderorg.sagebionetworks.repo.model.FoldertruefalseSupported421012015-01-28 23:10:11project, folder, study, analysis
analysisorg.sagebionetworks.repo.model.AnalysistruefalseDeprecated292013-05-09 12:44:15project, folder
steporg.sagebionetworks.repo.model.StepfalsefalseDeprecated342012-09-16 15:31:39folder, analysis
codeorg.sagebionetworks.repo.model.CodefalsetrueDeprecated7692015-01-28 23:09:42project, folder
linkorg.sagebionetworks.repo.model.LinkfalsefalseSupported2532015-01-14 15:44:07project, folder, study, data, step, analysis
phenotypedataorg.sagebionetworks.repo.model.PhenotypeDatafalsetrueDeprecated5692013-08-09 21:12:03project, folder, study
genotypedataorg.sagebionetworks.repo.model.GenotypeDatafalsetrueDeprecated16422014-05-08 06:21:11project, folder, study
expressiondataorg.sagebionetworks.repo.model.ExpressionDatafalsetrueDeprecated187242013-10-10 16:32:21project, folder, study
robjectorg.sagebionetworks.repo.model.RObjectfalsetrueDeprecated522013-03-02 22:28:36project, folder, study
summaryorg.sagebionetworks.repo.model.SummaryfalsefalseSupported1022014-11-06 21:56:38project, folder, study
genomicdataorg.sagebionetworks.repo.model.GenomicDatafalsetrueDeprecated22013-01-25 22:50:59project, folder, study
pageorg.sagebionetworks.repo.model.PagetruefalseDeprecated0 folder, page
fileorg.sagebionetworks.repo.model.FileEntityfalsefalseSupported1988202015-01-28 23:10:26project, folder, study
tableorg.sagebionetworks.repo.model.table.TableEntityfalsefalseSupported22602015-01-28 23:17:52project, folder, study
communityorg.sagebionetworks.bridge.model.CommunitytruefalseDeprecated12014-02-06 20:47:44root only

Table 1.

Locationable

Locationable entities can have one or more LocationData objects in their list of locations.  LocationData is the precursor to our currently supported FileHandle.  Each LocationData object points to either object in S3 (like a S3FileHandle) or an external URL (ExternalFileHandle).  Most of the client support burden is around supporting Locationable Entites. Table 1 shows which entity types are Locationable.  Even though a Locationable can have one or more LocationData it is assumed that each LocationData represents the same file just store in alternate locations and that all "copies" have the same md5 (see Figure 1).

Figure 1

Figure 1.

Containers

In the past we support many types of entity containers.  Each container can have one more child entity.  Table 1 shows which entity types are allowed to be containers of other entities.  Our users were either confused by all of these container types or wanted a new type for their special cases.  We decided that the only containers we want to support all Folders and Projects.

 

Locationable & Containers

Table 1 shows that datasets/studies are both containers and locationable.  None of the currently supported objects can have files and children entities.  Projects and Folders can have children but cannot have files.  Files can have files but cannot have any children.

Links In Everything

Links are a special case that can be contained in many types (see Table 1 'valid parents').  Since a Link can have study, data, step, or analysis as a parent, any of these object that have a link child cannot simple by changed to a File (file cannot have children). This is going to force us to make difficult decision about how to convert old types that have links as children.

Convert Entity Services

In order to fully depreciated the unsupported types, we need to convert each old type into one of the supported types.  The plan is to add a new services that will convert an old entity to a new type.  Many conversions will be simple.  For example, it will be simple to convert a a data object with a single file.  Conversion will not be simple for all cases where there is not a one-to-one relationship between the old and new.

 

  • No labels