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 Name | Container | Locationable | Status | count | Last Modified |
---|---|---|---|---|---|---|
dataset, study | org.sagebionetworks.repo.model.Study | true | true | Deprecated | 11479 | 2015-01-13 04:05:16 |
layer, data | org.sagebionetworks.repo.model.Data | false | true | Deprecated | 835532 | 2015-01-28 23:10:06 |
project | org.sagebionetworks.repo.model.Project | true | false | Supported | 8964 | 2015-01-28 23:25:29 |
preview | org.sagebionetworks.repo.model.Preview | false | false | Deprecated | 93 | 2012-01-19 05:52:23 |
folder | org.sagebionetworks.repo.model.Folder | true | false | Supported | 42101 | 2015-01-28 23:10:11 |
analysis | org.sagebionetworks.repo.model.Analysis | true | false | Deprecated | 29 | 2013-05-09 12:44:15 |
step | org.sagebionetworks.repo.model.Step | false | false | Deprecated | 34 | 2012-09-16 15:31:39 |
code | org.sagebionetworks.repo.model.Code | false | true | Deprecated | 769 | 2015-01-28 23:09:42 |
link | org.sagebionetworks.repo.model.Link | false | false | Supported | 253 | 2015-01-14 15:44:07 |
phenotypedata | org.sagebionetworks.repo.model.PhenotypeData | false | true | Deprecated | 569 | 2013-08-09 21:12:03 |
genotypedata | org.sagebionetworks.repo.model.GenotypeData | false | true | Deprecated | 1642 | 2014-05-08 06:21:11 |
expressiondata | org.sagebionetworks.repo.model.ExpressionData | false | true | Deprecated | 18724 | 2013-10-10 16:32:21 |
robject | org.sagebionetworks.repo.model.RObject | false | true | Deprecated | 52 | 2013-03-02 22:28:36 |
summary | org.sagebionetworks.repo.model.Summary | false | false | Supported | 102 | 2014-11-06 21:56:38 |
genomicdata | org.sagebionetworks.repo.model.GenomicData | false | true | Deprecated | 2 | 2013-01-25 22:50:59 |
page | org.sagebionetworks.repo.model.Page | false | false | Deprecated | 0 | |
file | org.sagebionetworks.repo.model.FileEntity | false | false | Supported | 198820 | 2015-01-28 23:10:26 |
table | org.sagebionetworks.repo.model.table.TableEntity | false | false | Supported | 2260 | 2015-01-28 23:17:52 |
community | org.sagebionetworks.bridge.model.Community | true | false | Deprecated | 1 | 2014-02-06 20:47:44 |
Table 1.
Locatoinable
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.
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.