Metadata service
1. Introduction
The current version of the OpenSocial Specification documents a limited metadata service -- you can ask the OpenSocial server what fields are supported by a particular service. This is partly useful, but a more complete metadata service would enable apps to provide a more compelling user experience, as well as adapt to differences in Jive instances due to configuration choices.
2. Data Models
2.1 Field Metadata
Each FieldMetadata instance represents a field that may be present in a particular entity of the containing object type.
Field NameTypeDescription| array | Boolean | Flag indicating whether this field is an array (true) or scalar (false). |
availability |
String |
Description of conditions on when this field will be available for a particular object. |
description |
String |
Description of this field. |
editable |
Boolean |
Flag indicating whether this field is modifiable on create and update operations. |
name |
String |
Name of the key under which this field will be present. |
required |
Boolean |
Flag indicating whether this field is required on create and update operations. |
since |
String |
Jive Core API version in which this field is initially available. |
type |
String |
Object type of this field. |
2.2 Object Metadata
Each ObjectMetadata instance represents all of the metadata associated with a particular object type.
Field NameTypeDescription| availability | String | Description of conditions on when this object will be available. |
description |
String |
Description of this object type. |
fields |
FieldMetadata[] |
Description of all possible fields that may appear in this object. |
name |
String |
Formal name of this object type. |
resourceLinks |
ResourceMetadata[] |
Description of all possible resource links that may appear in this object. |
since |
String |
Jive Core API version in which this object is initially available. |
2.3 Property Metadata
Each PropertyMetadata instance represents a configuration value for this Jive Instance.
Field NameTypeDescription| description | String | Description of this property value |
name |
String |
Name of this property value |
type |
String |
Object type of this property value |
value |
Object |
The current value of this property |
3. REST APIs
Verb and Request URIResponse BodyDescription| GET /metadata/objects | Map<ObjectTypeName,MetadataURI> | Return a JSON object whose keys are all supported object types in this Jive instance, and whose values are the URI to retrieve the detailed metadata for that object type. |
GET /metadata/objects/ Unknown macro: {objectName} |
ObjectMetadata |
Return the object metadata for the specified object name. |
GET /metadata/properties |
PropertyMetadata[] |
Return all of the configuration properties for this server instance. |
4. JS APIs
These will match the OS standard JS pattern.