Web Services

The Colectica Web Services are built on industry standard SOAP and WS-* messaging protocols to enable easy integration into workflows and third party applications. All web service calls are currently located in the http://ns.colectica.com/2009/07/ namespace. Web service method names are highlighted.

The Colectica Web Services are built on industry standard SOAP and WS-* messaging protocols to enable easy integration into workflows and third party applications. All web service calls are currently located in the http://ns.colectica.com/2009/07/ namespace. Web service method names are highlighted.

Managing Registration Authorities

The repository must be configured with the Registration Authority names for which it is authoritative. This is done through two web service calls.

  • CreateRepository - Registers an identifier for a Registration Authority with the repository. This will usually be a DDI agency ID.
  • RemoveRepository - Removes a Registration Authority from a repository. This does not remove any Administered Items; it only changes the repository’s state to Non-Authoritative for that RAI.

Repository Information

A user of the Colectica Repository may obtain information about the repository.

  • GetRepositoryInfo - Retrieve a RepositoryInfo object containing repository and user permissions

The repository information includes Dublin Core metadata about the repository, a list of registration authorities (RAI) that the repository if authoritative for, the permissions of the current user, and summery statistics about the types, counts, and revisions of items currently registered.

Registering Items

Administered items can be registered by authorized clients.

  • RegisterItem - Register an administered item with the repository.
  • RegisterItems - Register multiple administered items in a single web service call

Items are submitted by sending the DDI3 serialization of the item along with the item’s ISO 11179 IRDI, composed of the RAI, DI, and VI. An object type and commit options are also included to control the repository’s registration behavior. It is at this stage that an item may be deserialized from XML for further processing and indexing.

Retrieving Items

There are many ways to retrieve administered items stored in the repository.

  • GetItem - takes an ISO 11179 international registration data identifier (IRDI) and returns a RepositoryItem object containing information about an Administered Item and its XML serialization.
  • GetLatestItem - takes only the RAI and DI portion of an IRDI, and returns a RepositoryItem object containing the latest revision of an administered item.
  • GetItems and GetLatestItems - These calls take a collection of ISO 11179 IRDIs or RAI and DI pairs, and are for performance improvement. They can be used to substitute successive calls to their single item counterparts.

All four of these web service methods return an object called a RepositoryItem. It contains not only the XML serialization of the administered item, but also additional repository metadata about it including a collection of standardized notes, object type, version date, version author, version rationale, published status, depreciated status, and repository authority information.

Note

Implementers Note: The identification information needed for these calls can be obtained from references in other objects, through an appropriate URN or by using the Colectica Repository’s search functionality, detailed below.

Retrieving Item Metadata

When only the administered item’s title or description is needed by a client, this series of calls can be used to increase performance.

  • GetRepositoryItemDescription and GetRepositoryItemDescriptions - These calls take a single or collection of ISO 11179 IRDIs to retrieve a RepositoryItemMetadata object. It contains the identity information of the administered item and multilingual fields for ItemName, Label, Description, and Summary texts.
  • GetRepositoryItemDescriptionsBySubject and GetRepositoryItemDescriptionsByObject - These are analogous to the relationship search, taking a GraphSearchFacet object as a paramater. They differ in that they return a collection of RepositoryItemMetadata objects instead of RepositoryItems.

Set Management

Sets, similar to the RDF concept of a named graph, allow for the discovery of working sets. Named sets form the basis of process control in the Repository, allowing states such as development, production, HEAD, etc.

  • GetSet - takes an ISO 11179 international registration data identifier (IRDI) that specifies the root item in the set and returns a list of IRDIs of items present.
  • GetLatestSet - takes an ISO 11179 international registration data identifier (IRDI) that specifies the root item in the set and returns a list of IRDIs of items present. This special case of GetSet uses the latest version of any referenced administrative item in the object graph, and follows the latest item’s references when determining set boundaries.

Versioning

The Colectica Repository provides full support for item versioning.

  • GetLatestVersionNumber - find the latest revision (VI) in the repository
  • GetLatestVersionNumbers - find the latest revisions (VI) for a set of administered items. This is for increased performance for multiple calls of GetLatestVersionNumber
  • GetVersions - retrieve a list of all IRDIs corresponding to the RAI - DI pair of an administered object
  • GetVersionHistory - retrieve all RepositoryItemMetadata stored by the repository for all revisions of an item based on a RAI - DI pair.

Every revision of an item registered to the repository is saved, allowing clients to retrieve a full version history of any item in the repository. Each revision includes additional information in the RepositoryItemMetadata object:

  • the authenticated user who committed the version
  • the date and time the version was committed
  • an optional message describing the reason for the version
  • additional publication, rights, and deprecation information

Deprecating Items

In order to provide complete audit functionality, repository items may not be deleted. If an item is no longer needed it may be deprecated. Search requests can indicate whether they wish to include deprecated items in the results. Items can also be restored, or marked as no longer being deprecated.

  • DepricateItem - marks an item as deprecated based on an ISO 11179 IRDI.
  • RestoreItem - removes the deprecated status of an item based on an IRDI.

Search Response

The Colectica Repository returns results of matching items with the following information:

  • Type of object
  • Unique identifier (DI)
  • Agency identifier (RAI)
  • Version number (VI)
  • Summary text describing the matching item
  • Hostname of the authoritative repository
  • Whether the queried repository is authoritative
  • Whether the item is deprecated
  • A composite identifier (IRDI) consisting of the authoritative agency identifier, the item’s unique identifier, and the item’s version number

Tagging

A specific version of any item or set of items may be tagged. A tag is simply a name given to the version so it can be easily referenced in the future. Tagging can be used to mark milestones such as publication.

  • CreateTag - create a tag or tag set for an administered item
  • GetTags - get a listing of tags for an administered item
  • PublishItemGraph - verify all references in an administered item or set of items, and mark them as published.

Note

Implementers Note: To create a tag set, make sure that all references in the item graph are current by calling PublishItemGraph first.

Repository Item Annotations

Users with the appropriate role may annotate items stored in the Colectica Repository in a number of ways.

  • CreateComment - An authenticated user may make a comment on any Administered Item in the repository. This will also include the user’s name and date information.
  • GetComments - Get all comments about an Administered Item, and which revision they were applied to.
  • CreateRating - Allows a user to rate an Administered Item for quality
  • GetRatings - Get all ratings about an Administered Item, and which revision they were applied to.

Note

Implementers Note: User annotations are used for social collaboration using Colectica Web.