forked from ooici/ooici-pres
/
UXApi-3.txt
136 lines (108 loc) · 3.86 KB
/
UXApi-3.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
Workflows and Service API calls
===============================
workflow #0100 - Find Data Resource of Interest
--------------
DataResource[]:findDataResources(userId:UUID, published:enum, Spatial, Temporal)
NOTE: In order to fill the default view (all public data resources PLUS all user's data resources), two calls and the union of their results are necessary.
workflow #0101 - Examine Simple Data Resource
--------------
DataResourceDetail:getDataResourceDetail(dataResourceId:UUID, enum:detailType)
NOTE: The UI can request detail views in different type. In fact these are different detail views compiled by the integration layer.
The format of the detail body is a structured, renderable format, maybe simple HTML: h1, h2, h3, p, img, br
workflow #0102 - Download Data
--------------
String:createDownloadURL(dataResourceId:UUID) - create a URL for the download of the complete data resource in its current state from the OOI DAP server
workflow #0103 - Subscribe to a Data Resource
--------------
Subscription[]:findUserSubscriptions() - returns current user's subscriptions
UUID:createSubscription(Subscription) - creates a new subscription for a user
workflow #0104 - Monitor Subscriptions
--------------
Notification[]:getUserNotifications() - returns current user's notifications
Status:updateNotification(notificationId:UUID, status:enum) - updates notification status
Status:deleteSubscription(SubscriptionId:UUID) - deletes a user's subscription
NOTE: This works like an email client. The application integration layer buffers the notifications until they are requested by the UI.
workflow #0105 - Publish Data Resource into the OOI
--------------
UUID:createDataResource(DataResource) - creates a new data resource.
workflow #0106 - Monitor publications
--------------
Status:updateDataResource(DataResource) - updates metadata related to a data resource
Status:deleteDataResource(dataResourceId:UUID) - deletes a data resource
Data Structures
===============
User {
UUID:userId
String:firstName
String:lastName
String:role (e.g. role_admin, role_user, etc.)
}
DataResource {
UUID:dataResourceDd
String:provider
String:format
String:protocol
String:type
String:title
String:dataFormat
String:dataType
String:namingAuthority
String:summary
String:publisherInstitution
String:publisherName
String:publisherEmail
String:publisherWebsite
String:creatorInstitution
String:creatorName
String:creatorEmail
String:openDAP - DAP uri
String:wcs - wcs uri
String:wms - wms uri
String:ncml - ncml uri
String:uddc - uddc uri
String:iso - iso uri
Array:Viewer (e.g. viewers: Integrated data viewer, netcdf-java tools ui viewer, etc.)
Date:lastUpdated
Date:dateCreated
}
Spatial {
String:north
String:south
String:east
String:west
String:altitudeMin
String:altitudeMax
}
Temporal {
String:dateFrom
String:dateTo
}
Viewer {
String:name
}
DataResourceDetail {
UUID:dataResourceId
String:detailType (one of SUMMARY, METADATA, VARIABLE_NAME, VARIABLE_EXTENTS, VISUALIZATIONS)
String:body (structured body content)
}
Subscription {
UUID:subscriptionId
UUID:dataResourceId
String:subscriptionName
String:source (the dataResource name)
Date:subscriptionDate (when you signed up)
String:deliveryMode (one of INSTANT, DIGEST)
int:deliveryFrequency
String:deliveryChannel (one of WEBUI, DISPATCHER, later EMAIL, RSS)
UUID:deliveryChannelId (id of the actual target, such as the dispatcher process id)
}
Notification {
UUID:notificationId
UUID:datasetId
String:regarding (this is the dataResource name)
String:status (data changes, meta-data changes and change of state (error, offline, all zeros, others)
String:notification (this is the readable type of notification)
Date:date
String:source (readable name of the originator)
String:body
}