Titania Delivery Administrator's Guide

Author:

Chapter 1: Getting Started

1.1: What Is Titania Delivery?

Titania Delivery is a content delivery management system. Its purpose is to deliver completed publications to different audiences simply, quickly, and easily.

Titania Delivery enables organizations to simplify content delivery by providing a secure, hosted content portal of approved content topics and pre-built publications. With automated uploads of approved content, you can ensure your customers always have access to the most up-to-date information from any computer or smart device. In addition, the self-service content portal allows your customers to search for content topics and pre-built publications, assemble collections of information, and publish on-demand individual topics or collections to create personalized publications.

Titania Delivery is a cloud-based solution. This means there is no software to install, no system maintenance, and no publishing required. In addition, the Titania Delivery portal application has several advanced features, which includes content assembly. This enables customers to build their own custom publications using the topics available through their portal. Another feature of the Titania Delivery portal is review and feedback. Users can provide feedback on the portal content using a simple web-based interface that enables them to select and comment on any section of the content. These comments are then associated with the location of that content in the source document. Finally, when you distribute XML based content using Titania Delivery , a pre-publishing step is not required. You simply upload the XML source directly and Titania Delivery takes care of the rest.

1.2: Administrative Application

The TD admin application is used to administer Titania Delivery.

The Titania Delivery Administrative application (TD admin app) is a web application that provides administrative tools for a Titania Delivery site, including:

  • Maintaining administrative user accounts, memberships, and permissions.
  • Adding and maintaining TD organizations, projects, portals, and doctypes.
  • Creating portal authentication systems (using 3rd-part identity providers of your choice).

This guide provides detailed information about using the application to configure and maintain your TD site.

1.2.1: Admin Application Login

Logging into the TD admin application.

The admin app for a TD site can be accessed at a URL like https://{site-hostname}/admin (where {site-hostname} is the fully-qualified domain name of the site.

Admin user accounts are identified by an email address. User accounts are created and maintained by a TD Security Administrator.

When accessing the TD admin application, the user is challenged for E-Mail Address and Password: If the credentials are valid, the application will display the user's list of Organizations.

If the login is unsuccessful, the user will be asked to try again. After 5 unsuccessful attempts, the user account will be locked, and a TD Security Administrator must unlock it. (The maximum number of unsuccessful attempts before locking can be changed at customer request, by submitting an Oberon Support request.)

If the user has forgotten their password, the "Trouble logging in?" link will display a dialog for resetting the passord or resending new account notice (if user has not previously logged in).

Multi-Factor Authentication (MFA)

Contact Oberon Support to request enabling MFA for admin login. You can also specify the validity time period for the security code (default 10 minutes) and the number of unsuccessful attempts allowed (default 5).

If this feature is enabled, the system will send a one-time unique security code by email to the user after the account id and password have been verified. The user must then enter this code in the dialog box:After the maximum number of unsuccessful attempts to enter a security code, the user will be returned to the admin app login screen.

Each security code is valid for a limited time period as stated in the email. The user may request a new security code by clicking the link, "Send a new security code".

Admin Application Session Timeout

The default session timeout is 15 minutes. If there is no browser activity or communication with the server in that time, the session will expire, and the user will be prompted for login credentials.

Site administrators can request Oberon Support to modify the timeout value. Note that longer timeout values may increase security vulnerability. Administrators should check with their corporate security officer to verify compliance before requesting any change.

1.2.2: Content-Security-Policy and Administration Application

Administration application content-security-policy compliance.

Content Security Policy (CSP) is a W3C recommendation for specifying restrictions on how browsers should handle potentially dangerous components in an HTTP response entity. As of this writing, 2 levels of the recommendation are available.

  • CSP Level 2 (recommendation 2016-12-15)
  • CSP Level 3 (working draft; many features implemented in modern browsers)

By default, TD includes the following Content-Security-Policy HTTP header on all administration application pages.

default-src 'self’; script-src ‘self’ 'unsafe-inline' 'unsafe-eval'; style-src ‘self’ ‘unsafe-inline’;image-src ‘self’ data:;

The admin application will function as expected in browsers that implement these CSP directives.

If your site requires a different policy, contact Oberon Support to discuss your requirements. The following stricter policies can be implemented on request, but will impose restrictions on certain aspects of the application.

For sites that do not allow script-src 'unsafe-inline' 'unsafe-eval', the TD administration application will function normally except the assembly editor will be disabled if the following policy is in effect.

default-src 'self’; script-src ‘self’; style-src ‘self’ ‘unsafe-inline’;image-src ‘self’ data:;
A future version of TD will lift this limitation with respect to the assembly editor.

For sites that do not allow style-src 'unsafe-inline', the TD administration application will function normally except content item preview may be degraded (due to the use of inline @style attributes in the preview HTML). It may be possible to remedy these defects by providing a doctype preview.xsl stylesheet that eliminates the use of inline styles. (See "Custom Preview Stylesheets" in the Titania Delivery Developer's Guide.) Then the following policy could be added.

default-src 'self’; script-src ‘self’; style-src ‘self’;image-src ‘self’ data:;

1.3: Getting Started With Titania Delivery

A brief understanding of Projects, Organizations, Document Types, Metadata, Portals, and Portal Themes.
Primary Concepts
Organizations
An Organization is a container for content delivery management assets. An Organization has ownership of its own Projects, Portals, and Portal Themes, and can also be granted access to Projects owned by other Organizations. An Organization's contents can be managed by multiple users.
Projects

A Project is a container where the content owner places the content they want to distribute. You can think of a Project as a virtual file system containing your files, organized into folders.

Content can be uploaded manually through the administrative web application, automatically through the Titania Delivery Client Connector SDK, or via a Client Connector to a specific CMS or other source control system. A Project's content can be shared through any number of Portals. Projects have access control rules defining the users who have access to various content and delivery management functions.

Portals
A Portal is a content delivery channel. Think of a Portal like its own website targeted at an individual audience. A Portal can pull its content from one or more Projects and filter that content using metadata rules.
Portal Themes
A Portal Theme allows you to control every aspect of the appearance of a Portal, from the HTML and CSS of the web pages themselves to the stylesheets used to convert XML content into viewable HTML.
Document Types
A Document Type is a special kind of project that contains the XML grammar definition files – DTDs and XML Schemas – that are used to parse XML content.
Metadata
Metadata provides information about the content; think of it as properties you can customize for single or multiple files. These values set on your files can be used in multiple ways to enhance the delivery of your content. See Managing Metadata for additional details.
Client Connectors
Client Connectors are optional components that can be used to synchronize content from your content management system into Titania Delivery projects automatically based on a pre-set schedule or triggered on-demand.

In the next few topics you will learn how to create organizations, projects, portals, and document types.

1.4: New User Account Contents

A new Titania Delivery user is automatically provided with an Organization that contains a Project and Portal with some boilerplate content.

The first time you log in to a new Titania Delivery account, you will have

  • An Organization named for the account, and owned by that account.
  • A simple Project with some content, pre-configured with some metadata.
  • A Portal, pre-configured to display the content in the Portal.

1.5: Creating Your First Project

A Project is a container where the content owner places the content they want to distribute. You can think of a Project as a virtual file system containing your files, organized into folders.
  1. Select the Projects category within your organization.
  2. Click the New... button in the header of one of the sections in your Projects list.
  3. Give the project a meaningful name and select the owner, then click Save.

You now have an empty project. Click the project name to open it.

1.6: Creating Your First Portal

A Portal is a content delivery channel. Think of a Portal like its own website targeted at an individual audience. A Portal can pull its content from one or more Projects and filter that content using metadata rules.
  1. Navigate to the Portals category within an organization.
  2. Create a new Portal by clicking a New... button in the header of one of the sections in your Portals list.
  3. Fill out the Create New Portal dialog.

    Name
    The Name is the "Administrative Name", visible only in the Admin Application. This name will not appear anywhere in a Portal.
    Owner
    Select an Owner from the dropdown.
    URL Path
    Enter a URL path for the address of your portal. This will be the URL path on the portal website used to access this portal. This prefix must be at least 2 characters long and cannot contain spaces. For example, "myportal".
    Note: This is the URL address of the portal. Thus no two portals can share the same URL path. You will be warned if the path is already taken.
    Theme
    This dropdown allows you to switch between any portal themes that are available to you.

  4. Click Save.
  5. Click on the newly created Portal name to open its details.
  6. Click the Projects tab to associate projects with this portal.
  7. Click the Add link next to one of the projects in the Other Candidates list to add projects to the portal.
  8. Click the Details button. Click the URL at the top of the page to open the portal in a new browser tab or window.

When you associate a project with a portal, by default all content of that project becomes available through that portal. However, you can filter the content for the portal by assigning Metadata filters via the Content Filter tab.

1.7: Where to Go from Here

Now that you’ve created your first Project and Portal, you can share content in an Organization and customize a Portal's look and feel as well as configure its content.

To fully realize the potential of Titania Delivery , explore the following advanced functionality:

  • Share content, document types, and Portals between a group of people with Organizations.
  • Customize a Portal's look and feel with Portal Themes.
  • Empower your content with Metadata.
  • Customize and configure search results with Search Facets.

Chapter 2: Organizations

An Organization is a container for content delivery assets. An Organization has ownership of its own Projects and Portals, and can also be added to Projects owned by other users or Organizations.

2.1: Creating an Organization

Create an organization to easily share content and resources within a team or company.

When your user account is created, a new organization named for you is created automatically. You can create additional organizations using the following procedure.

  1. Click the Organizations button on the right of the main Administration page.
  2. Click the New... button.
  3. Give the organization a name and click OK.
  4. Enter the Organization's name and click OK.

You now have an empty organization to configure.

Adding Members to an Organization

Perform the following steps to add members to your organization.

  1. Open the organization by clicking on it in the homepage.
  2. Select the Members category.
  3. Click the Add User... button.
  4. Type the user's email address.
  5. Select Administrator if you want the user to be able to add and remove members from the organization; otherwise, select Member.
Note: Administrators can change a user's role by selecting the role from the Member Type dropdown.

2.2: Membership Levels

Organizations are made up of Members, Administrators, and the Owner.

When an organization is added to a project, all of the members of that organization are granted the rights and privileges granted at the organization level. The one exception to this is when a project is created whose owner is an organization. In that case, the administrators and owner of that organization have ownership rights to the project, but other organization members have contributor-level access to that project unless explicitly added with a different membership level.

Organization Member Access to Organization's Projects

This table shows the Project membership level (left axis) conferred to members of an Organization at various levels (top axis), when that Organization is added to a Project.

  Member Admin Owner
Viewer Viewer Viewer Viewer
Contributor Contributor Contributor Contributor
Admin Admin Admin Admin
Owner Contributor Owner Owner
Note: For the most part, the level of membership conferred to members of an Organization is the same as that conferred to the Organization itself. The one exception to this is when the Organization is the owner of the Project (that is, the Project was created for that Organization). In that case, all members of the organization have contributor rights to those projects.
Organization Activity Rights

This table shows the activities that can be performed by Organization members at the various membership levels.

  Member Admin Owner
Manage content in Projects, Doctypes, and Portal Themes x x x
Add/delete Projects owned by the Organization   x x
Add the Organization to a Project owned by another Organization or User   x x
Portal Management   x x
Initiate Ownership Transfer     x
Delete the Organization     x
Project Activity Rights

This table shows the activities that can be performed by Project members at the various membership levels.

  Viewer Contributor Admin Owner
View Content x x x x
Add and Delete Folders and Files   x x x
Add a XML Doctype to a Project     x x
Add Members     x x
Update a Member's Permissions     x x
View Project Membership x x x x
Manage Metadata   x x x
Delete the Project       x
View XML Doctypes x x x x
View Processing Activity on a File   x x x
View File Metadata x x x x
View a File's Relationships x x x x
Search x x x x
View Validation Report on a File x x x x
View Assemblies x x x x
Create and Edit Assemblies   x x x
Initiate Ownership Transfer       x
Delete the Project       x

2.3: Metadata Field Configuration

Organizations may specify the common metadata fields being applied to its content and leveraged by its portals using the Metadata Fields section of the Organization administration interface. Specifying these fields enables content owners to quickly and easily view and update the important metadata fields on their content.

Each metadata field configured in this view has the following properties.

Name
The metadata name.
Display Name
The label for the form presented to users who are authoring metadata.
Type
The type of field. Available values are:
Text
A free-form text field.
Choice
Presents the user with a list of valid values.
Multi-Valued?
If checked, the form will allow users to specify multiple values for this field.
Cascades?
If checked, then properties set on DITA maps will also apply to the topics referenced by that map. See How Content Processing Works for details.
Valid Values
When Type is set to Choice, this column allows the specification of the available values the user will be allowed to choose from.

The Export link will download the metadata field configuration as a JSON file. This file can then be Imported into another organization.

The metadata fields configured for the System Administrators Organization serve as the default set for all new Organizations.

2.4: Creating Assets Under an Organization

Create a project, document type, or portal within your organization.

Follow these steps to create a new Project, Document Type, Portal Theme, or Portal within an Organization.

  1. Select the Organization you want to create assets within from the home page.
  2. Select the appropriate category in the navigation.
  3. Click the New... button at the top of the list.
  4. Specify the name and any other required information on the given form,

2.5: Organization Analytics

Display or download analytical reports about organization project and portal usage.

Click the time range at the top of the screen to select an alternative time window from which to generate the report charts. You can also exclude traffic from known bots and search engine crawlers by selecting the Exclude known bots and crawlers checkbox. Finally, use the Exclude media references checkbox to configure whether references to non-content objects, like graphics, should be excluded from the reports.

By default, all portals owned by the organization are included. This will usually provide all desired information, because it will include projects attached to all portals. Add projects under Included projects to include them in the visualization. Uncheck portals under Included portals to exclude them from the visualization.

There is a built-in limit that prevents more than 1,024 portals and projects from being selected at once. The query will not run if more than 1,024 portals and projects are selected. In some cases this will cause an error.

Organization analytics include the following reports:

Traffic
Traffic over the selected time period.
Top Projects
The top 10 projects owned by the organization, in terms of traffic received.
Top Portals
The portals sending the most traffic to the projects.
Most Viewed Files
The top 10 most-viewed files.
Most Viewed DITA Map Contexts
The top 10 DITA maps whose topics and/or tables of contents have received the most views over the specified time range across all portals.
Most Up-Voted
The 10 topics with the most 'Yes' votes in the Was This Useful? box.
Must Down-Voted
The 10 topics with the most 'No' votes in the Was This Useful? box.
Top Browsers
The top browser family names, as determined from the browser's User-Agent request header value.
Note: Modern Microsoft Edge™ browsers (released in late 2019) were recorded as "Chrome" browsers in Titania versions prior to 4.3.
Top Countries
The 10 most-common countries from which traffic is generated, where the client's geographical region can be determined.
Top Regions
The 10 most-common regions (e.g. states or provinces) from which traffic is generated, where the client's geographical region can be determined.
Top Cities
The 10 most-common cities from which traffic is generated, where the client's geographical region can be determined.
Top Browser Locales
The 10 most-common browser locales.
Top Referrer Domains
The 10 most-popular referring web domains.
Note: Some metrics may be inexact approximations.
Downloading Reports

The pie charts only show the top ten results for any given metric. Titania Delivery allows the downloading of all statistics in a convenient CSV format.

Select the Download tab on the Metrics section of the portal administration area.

Specify the date range and reports you wish to download. Click the Download button to recieve a ZIP archive containing CSV files for each report.

By default, no projects or portals are selected. Because the amount of usage data for an entire organization can exceed system capacity, you should limit requests to specific portals or projects needed, and limited date ranges. Regardless of input selections, if the data exceeds the maximum, the file size will be limited, and an additional file entry named "_INCOMPLETE_REPORT" will appear in the zip file. You will usually be able to download complete usage data from individual project or portal analytics pages.

Content View Records
Every view of a piece of content through a portal will be recorded in this report, including a timestamp, identifying information for the user, as well as details of their browser, operating system, and device.
Note: The modern Microsoft Edge™ browser name is recorded as "Chrome" prior to Titania version 4.3. Starting with version 4.3, the name of these browsers is recorded as "Edge", and the "User Agent" string will have been modified from its original form to change the spelling of "Edg" to "Edge". You should take this change into account when performing further analysis on the "User Agent" values. If it is necessary to distinguish between Edge™ versions, use the version identifier.
Search Records
Every search attempted via the portal will be recorded, including search term, the number of results, and whether the user needed to navigate past the first page of results.
User Comments
This report contains element and document-level comments in the portal, including identifying information for the document and, when applicable, the element where the comment was left.
Helpfulness Votes
This report includes the responses, including comments, left through the Was This Helpful widget that appears on many portal web pages.
User Data Entries
This will cause the zip to include a userdata folder, containing the data stored using the Portal Theme SDK's UserData and SiteData features. Each user with UserData entries will have its own XML document containing that user's data. In addition, there will be a site.xml file containing any SiteData.

2.6: Changing the Organization Owner

Change the owner of an organization when necessary to maintain continuity as user roles change.

The owner of an organization can request that another administrative user take ownership of the organization.

Note: Because only the owner can initiate the request to change ownership, it is important to transfer ownership while the current owner is still an active user.
Note: Ownership can only be transferred to another member of the organization. If the desired owner is not already a member, add them.
  1. In the organization view, click the Members button on the left side of the page. Next to the intended owner, expand the drop-down list and select Owner.Organization Members
  2. The following dialog will appear. Click Yes.Confirm Organization Ownership Transfer
  3. A message will appear above the members list stating that the change of ownership is pending. The request may be cancelled by the current owner by pressing Cancel.Pending Ownership Exchange
  4. The user who has been requested to take ownership will see a message when viewing the Members tab of the organization. Complete the exchange of ownership by pressing Accept.Change Owner Invitation

Chapter 3: Projects

A Project is a container where the content owner places the content they want to distribute. You can think of a Project as a virtual file system containing your files, organized into folders.

3.1: Creating a Project

Create a new empty project.
  1. Select the Projects button on the right side of the homepage, OR select the Projects category within an Organization.
  2. The project list is subdivided by organization. Click the New... button in the header of one of the Organizations in the Projects list.
  3. Give the Project a meaningful name. and select the owner, then click Save.
    Note: The Owner dropdown will display the organization selected when clicking New.... The dropdown will allow the selection of some other owner, in case the wrong link was used to launch the dialog.

You now have an empty project, ready for content. Click its name to open it for configuration and content loading.

Note: To rename a project, click the project name at the top of the screen.

3.2: Adding and Removing Content in a Project

Create a folder structure and upload a variety of files.

You can add files, folders, and subfolders to your projects. Titania Delivery Projects can contain any kind of file, though Titania Delivery 's ability to display different file types varies.

XML Content
XML content with an associated Document Type will be processed according to the configuration in that document type.
DITA Maps and Topics
Titania Delivery can automatically convert DITA maps and topics into HTML for display. It also performs a weighted full-text search index where titles, keywords, and index terms receive extra weight.
Adobe PDF Files
Titania Delivery automatically performs a full-text index of PDF files, and makes them available for viewing. However, different browsers vary in their ability to display PDF documents natively.
Microsoft Office Documents
Titania Delivery also automatically performs a full-text index of most Microsoft Office formats, including Microsoft Word, Excel, and PowerPoint. Most browsers cannot display these file types natively, but they are made available for download.
Graphics
Titania Delivery will automatically convert many print-oriented graphic formats, such as EPS, Adobe Illustrator format, and TIFF, to web-friendly formats. It also allows administrators to specify a title, description, and keywords for all graphic files which are then passed to the search engine.
Other Files
You can store any type of file in a Titania Delivery project. If it's not one of the above formats, the administrative application allows you to specify a title, description, and keywords for use by the search engine.
Uploading Files

You can upload files to a project by clicking the Upload tab, which is visible when the project or a folder is selected. You can either drag and drop files into the box labeled Drop a File Here, or click the Select a File button to bring up the browser's dialog for selecting files.

Note: If you upload a zip archive, Titania Delivery will automatically extract the files and folders within that archive unless the Extract Zip Archives checkbox is unchecked. It will also automatically overwrite existing files unless Overwrite Existing Files is unchecked.

Creating Folders

Create a folder by clicking the New Folder button in the Details tab of the root project or any folder.

Deleting Files and Folders

To delete a file or folder, select the file/folder, and click the Trashcan icon.

Note: If you delete a folder, it will also delete all sub-folders and files in the folder.

3.3: Managing Project Membership

You can add users and organizations to projects with different levels of access.

There are several levels of membership in Titania Delivery projects.

Viewer
A Viewer can search, view content, view file metadata, view relationships, view validation reports, view assemblies, and view project membership.
Contributor
A Contributor can add and delete files and folders, as well as create and edit assemblies.
Admin
An Admin can manage the project's document types, and manage project membership.
Owner
The Owner is the user or organization that owns the project. If the project is owned by a user, only that user can delete it. If the project is owned by an organization, any administrator of that organization can delete it.

Adding Members
  1. Click the Membership tab of the project to view the list of members.

  2. Click the Add User... button.

    Existing Titania Delivery user's email addresses will be auto-suggested as you type.

  3. Enter the new member's email address.

  4. Choose the member's role and click Add.

Changing Member Level

Project owners and administrators can change a Member's level by selecting a role from the drop down.

3.4: Managing Metadata

Metadata provides information about the content; think of it as properties you can customize for single or multiple files. These values set on your files can be used in multiple ways to enhance the delivery of your content.
Basic Metadata

If the Organization specifies its set of common metadata fields, the default view on the Metadata tab will present this form.

This field allows users to easily modify the values for common important metadata fields. If a user has Viewer-level access to the project, all fields will be read-only. If a field was pre-populated during content processing, meaning it is intrinsic to the contents of the file, it will also be displayed in a read-only fashion.

Advanced Metadata

The Advanced metadata view displays all metadata on the selected file, and can be used to manually add and remove metadata values.

  1. On the metadata tab, click the Edit Metadata button.
  2. Click the + Add button to open the Add Metadata dialog.
  3. Enter a Name and Value for the metadata.
  4. Specify whether or not the metadata cascades. This only applies for DITA maps. When a piece of metadata cascades, that means it is copied to the contextualized copies of the topics referenced by the map. For example, title does not cascade, because the title of the map is not the title of its topics; but something like publicationType might cascade to cover an entire logical publication.
  5. When modifying metadata on a DITA map, use the checkbox at the bottom of the dialog to control whether the new metadata should apply to the topics referenced by the map, as well as the map itself.
Managing Metadata with CSV Files

When uploading content to a project using a Zip archive, you can include within the zip a file called metadata.csv containing the metadata for the files in the archive. The rules for this CSV file are as follows.

  • The first row specifies the metadata keys.
  • The first column specifies the file names.
  • The remaining columns contain values for the metadata keys named in the first row, assigning them to the file named in the first column.
  • If there is no file name in the first column, the metadata values apply to the same file as the previous row. If the previous row is completely blank, the values will not apply for any file, and will be considered "placeholders" for files to be named later.
  • If a given field contains multiple values, use multiple rows for that field applying to the same file.
  • If a metadata field should cascade from DITA maps to contextualized topics (see Metadata Applicability below), then the column header should end in an asterisk (*). The asterisk will not be included in the metadata name; it is simply a signifier that this field should cascade.
  • Boolean values, which Microsoft Excel treats as all-caps ("TRUE" and "FALSE"), will be converted to lower-case ("true" and "false").
  • The CSV file must be saved from Excel using the File Format "CSV UTF-8 (Comma-delimited) (.csv)" on the Save As... dialog.

When uploading to the system, the CSV file must be included in the Zip archive, must be at the root of the zip, and must be named metadata.csv. There is no harm in the CSV file naming files that are not present in the zip; those values will be ignored. If the zip archive contains a folder structure, the folder path within the archive must be included in the file names in the first column of the spreadsheet. For example, if there is a file in a "topics" folder called "topic.dita", then the first column in the CSV file for entries pertaining to that file should be "topics/file.dita", not simply "file.dita".

Sample CSV Structure

The following example contains metadata for two files.

  • file1.dita has foo="bar", cascading, and a multi-valued field multi="a", "b", "c", non-cascading.
  • path/to/file2.dita has foo="zed", cascading, and multi="x", "y", "z", non-cascading.

Sample CSV Structure
Metadata Applicability

Metadata can be specified at several levels.

Project-Level Metadata
Metadata set on projects apply for every file in that project.
DITA Map Metadata
When the a metadata field is configured to cascade, it will be copied from the DITA map to the contextualized copies of referenced topics See How Content Processing Works for details.
DITA Topic Metadata
Metadata set on DITA topics apply to the topic by itself and to every contextualized version of that topic under all maps that reference it.
Other Files
Metadata set directly on other file types simply apply to that file.
Default Metadata Rules

All content automatically receives the following metadata. Unless otherwise specified, this metadata does not cascade.

filename
The name of the file.
path
The path of the file within the project, including the leading forward slash.
format
Describes the format of the content, often based on the file extension of the document. Some content, especially XML content, may have multiple values for this metadata, including values like "XML", "DITA", or "DITAMAP."
contentType
The MIME type of the content.
basename
The file's base name, before the extension.
extension
The file extension of the source file, without the leading period.

In addition, the following metadata is captured for all XML content.

publicId
The public ID of the document, if any.
systemId
The system ID of the document, if any.
schema
The schemaLocation attribute of the default namespace of the document, if any.
rootTag
The name of the root element of the document.
publicationType
This is the same as rootTag, but unlike that entry, this one cascades from maps to contextualized topics. This allows you to filter only specific types of maps, e.g. bookmaps, using this field.
dita
A boolean (true/false) entry indicating whether the content represents a DITA topic or map. Always true for DITA maps and topics, false or absent for others.
Computed Metadata for DITA Content

XML document types stored in Titania Delivery can be configured with an XSLT transform to extract metadata from XML content. The built-in DITA document types include the following rules by default.

ditaMap
A boolean (true/false) entry indicating whether the content represents a DITA map. Always true for DITA maps, false or absent for others.
ditaTopic
A boolean (true/false) entry indicating whether the content represents a DITA topic. Always true for DITA topics, false or absent for others.
rootDitaClass
The DITA @class attribute of the root element in the document, if applicable.
locale
The value of the @xml:lang attribute. If there is no @xml:lang attribute, the default is en.
lang
If the @xml:lang attribute contains a hyphen (-), the part before the hyphen is used. Otherwise, the full @xml:lang attribute value is used. If there is no @xml:lang attribute, the default is en.
region
If there is an @xml:lang attribute and it contains a hyphen (-), the part of the value after the hyphen is used. No default value.
product
The @product attribute on the root element.
The <prodname> elements within <prodinfo> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
audience
The @audience attribute on the root element.
The @type attribute on <audience> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
experiencelevel
The @expriencelevel attribute on <audience> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
platform
The @platform attribute on the root element.
The <platform> elements within <prodinfo> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
brand
The <brand> elements within <prodinfo> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
permission
The @view attribute on any <permission> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
category
Any <category> elements within <prolog> (on topics) or top-level <topicmeta> (on maps).
resourceid
The value of the @appid (DITA 1.3) or @id (DITA 1.2) attribute on <resourceid> elements. If the @appname attribute is also specified, then the name of the metadata entry will be resourceid_{@appname} with "{@appname}" replaced by the value of the @appname attribute.

The default rules will also capture <data> elements within <metadata> elements within<prolog> (on topics) or top-level <topicmeta> (on maps). The metadata name is drawn from the@name attribute, and the value is drawn from the @value attribute and the element content. If both the @value attribute is present and the element contains content, two values will be assigned to the metadata name.

Finally, the default rules will automatically capture <othermeta> elements within <prolog> (on topics) or top-level <topicmeta> (on maps). The name will be drawn from the @name attribute, and the value from @content.

Computed Metadata for DocBook Content

The built-in DocBook 5.0 document type captures the following metadata.

title
The title of the document.
locale
The value of the @xml:lang attribute. If there is no @xml:lang attribute, the default is en.
lang
If the @xml:lang attribute contains a hyphen (-), the part before the hyphen is used. Otherwise, the full @xml:lang attribute value is used. If there is no @xml:lang attribute, the default is en.
region
If there is an @xml:lang attribute and it contains a hyphen (-), the part of the value after the hyphen is used. No default value.
publicationType
The name of the root element in the document, e.g. article or book.
<bibliomisc>, <releaseinfo>, and <biblioid>
When these elements appear in a top-level <info> element, the value of their @role or @class attribute will be used as the name of the metadata, and their contents as the value.
copyright-year
Each <year> within <copyright> within a top-level <info> will be represented as a distinct value of this metadata.
copyright-holder
Each <holder> in a <copyright> in a top-level <info>.

In addition, every element within the top-level <info> element that contains text only and no elements will be captured, with the metadata name being the element name, and the value being the text contents. For example, <pubdate>, <productname>, and <productnumber>.

Computed metadata on a DITA topic.

Here is an example of a ditamap with category set to Diagnostic Manual. Titania Delivery automatically captures it as a metadata value, as well as the title, id, and other values, and stores them as metadata on the document.

3.5: Associating a Document Type with a Project

XML identification and validation in Titania Delivery projects requires that the project be associated with document types.

When a project is created under a user or organization, it will automatically be associated with all of its owner's existing document types. You can subsequently add additional document types from other users or organizations.

To associate a document type with a project:

  1. Select the top-level project folder in the document tree and open the XML Document Types tab.
  2. Click + button next to one of the existing document types, and select the document type you want to associate with the project.
  3. The new document type will appear after the entry whose + button was used. To reorder the document types, use the orange drag anchor next to each entry.
    Important: The ordering of document types is important. If a public ID or URI exists in more than one document type associated with the project, the matching entry from the first document type in the list will be used.

Now, when XML content referencing the document type is added to the project, it can be parsed and validated using the DTD or XML Schema rules associated with the document type. This will also allow Titania Delivery to identify content using DITA specializations. For more information, see Document Types.

Note: Content that was added before the document type association was configured will need to be re-processed.

3.6: How Content Processing Works

When a new file is added to a Titania Delivery project, it is inspected by Titania Delivery and any work deemed necessary for that file is performed.

Titania Delivery can transform many different kinds of files, but some examples are:

  • Full-text search indexing of DITA, PDF, and Microsoft Office documents.
  • Flattening, metadata gathering, and HTML preview generation of DITA maps and topics.
  • Conversion of Markdown files to HTML
  • Analyzing the relationships between content, such as hyperlinks and graphic references in HTML, DITA, and Markdown files.
  • Conversion of print-oriented graphics, such as TIFF or EPS, into more web-friendly formats like PNG.

File processing is done in the background after content is uploaded. There is a short lag between when content is uploaded and when processing is complete. Until some files are processed, some of their information, such as their preview, incoming/outgoing relationships, and calculated metadata, will not be available. You can also see how much processing remains for an entire project by clicking the Content Processing tab when the project is selected.

Note: It is a good idea to wait until all content processing is completed before making any other changes to the project such as adding/removing metadata, changing the XML document types, or adding/deleting content. Taking such actions during content processing could cause errors that require re-processing the entire project to fix.

HTML and Markdown Processing

Markdown files will be automatically converted to HTML for processing. Then both HTML and Markdown files will be analyzed for relationships to other documents. This means that if these files have hyperlinks or references to graphics, they will function as expected when rendered in the portal.

In addition, Titania Delivery determines whether an HTML file is a full HTML document, with a <head> and <body>, or is HTML <body> content. Portals will present the former as standalone pages when serving them up through portals, but will serve the latter wrapped using the portal's theme configuration.

HTML <meta> tags that specify @name and @content attributes will be captured as embedded properties, and mapped to Titania Delivery metadata using the configured metadata mappings.

<meta name="mdName" content="mdValue">
<h1>Document Title</h1>
<p>This is the document content.</p>

Markdown documents may begin with metadata in YAML format, delimited from the rest of the content by three dashes. Such metadata will be treated as embedded properties and mapped to Titania Delivery metadata using the configured metadata mappings.

---
mdName: mdValue
---

# Document Title

This is the document content.

For details on setting up metadata mapping configurations, refer to the Developer's Guide.

Non-DITA XML Processing

When an XML document with an associated document type is loaded into a project, its processing is as follows.

  1. The document is decorated with namespaced attributes describing the role of each element, as configured in the document type's configuration files.
  2. References to other files, like graphics, are recorded.
  3. If the document contains chunk boundaries, the document is chunked at those boundaries, and a namespaced table of contents is inserted in place of the chunks.
  4. Each chunk is then added to the search index as an independent document.

Additional details about this process are described in the developer's guide.

DITA Processing

When a DITA map is processed, Titania Delivery generates a contextualized copy of each of the topics referenced by the map. This contextualized copy will apply the map-specific details, including

  • Cascading map and topicref metadata will be inserted.
  • Key reference will be resolved.
  • Map-based related-links, either from map structure or from relationship tables, will be injected.
  • Map-specified profiling will be applied.
Note: You can swap between the uncontextualized topic and its contextualized copies using the Context dropdown on the topic's preview.

So in effect, a topic exists in a Titania Delivery system N+1 times, where N is the number of <topicref> references to that topic. When viewing a topic in a portal, which contextualized copy will depend on the link used to access it. When clicking on a rendered map, you will be taken to the contextualized copy corresponding to the selected topicref. When viewing search results, all available contexts are listed, and the user is able to select the appropriate one.

For example, consider a DITA topic that is referenced by three maps.

When the maps are processed, contextualized copies of the topic will be made, with all map processing applied.

Any metadata fields on the DITA maps that are configured to cascade will then be copied to the contextualized copies of the topic.

When a topic referenced by a map is modified or removed, or when a formerly-missing topic is uploaded, the map is flagged as needing re-processing, so that the contextualized copy for the new version of the topic can be generated. You can check this flag on the Details tab of the map as the Children Modified entry.

Item Representation Types

After processing, each item will have one or more renditions stored in the system. Each rendition is classified as one of five item representation types. A processed rendition of an XML document many have several instances corresponding to its profiling and contextualization combinations. The item representation types are:

ORIGINAL
The original content item that was uploaded to the project. You can view the ORIGINAL rendition of text files by pressing the View Source button above the admin application project item preview display.
Note: Many browsers display XML files as HTML using a built-in stylesheet. To see the actual XML, you can either use the browser control to "View Page Source", or download the item from the project.
PROCESSED
The item has been processed according to its content type, possibly resulting in changes to the markup or content. XML documents are processed according to their doctype definition. DITA XML documents have been processed according to DITA processing expectations. Non-web-friendly images are converted to PNG format.
FLATTENED
For DITA topics, the FLATTENED rendition will have remote references resolved into the content.
MONOLITH
For DITA maps, the MONOLITH rendition is an XML document containing the fully-expanded contents of all topics referenced from the map.
PREVIEW
A rendition of the original item in a content type suitable for display in a browser. For XML files, this will be an HTML transformation of the XML, using the doctype's preview.xsl stylesheet.
Not all representation types are appropriate for all item content types.

Re-Processing Content

Content is automatically re-processed every time it is uploaded. However, there may be times when you want to re-process some or all of the content in a project without re-uploading the content. For example:

  • The project's document type associations are modified, and you need to re-process XML content using the newly-available document types.
  • Preview stylesheets or metadata rules are updated.
  • After a Titania Delivery upgrade with new content processing capabilities.
  • Content linked from a DITA map is updated.
  • Necessitating the regeneration of contextualized copies.

You can re-process content at the project, folder, or file level using the Re-Process Files button (). At the project and folder level, this button has a menu with two options:

  • Re-Process Updated files will reprocess only files with the Children Modified flag set to 'true'.
  • Re-Process All files will reprocess all files in the project or folder unconditionally.
  • Delete Project Search index and Re-Process All files will delete all search records for the project before reprocessing all files. The search index will be rebuilt during processing.
    Note: This action will disrupt the portal display of project contents and make search results unreliable while files are being reprocessed.

As a general rule, it's a good idea to re-process updated files whenever you upload topics without also uploading new versions of the maps that reference them.

Note: If you notice bizarre behavior within a project or a portal, a good first step in troubleshooting the problem is to reprocess the specific project or all projects associated with the Portal. If search results include items that no longer exist in the project, deleting the project search index will resolve that problem.

3.7: The Validation Report

Errors and warnings captured during content processing are stored in a file's validation report.

A file's validation report can be viewed by selecting the file and going to the Validation Report tab. Each error has an indication of whether the message is a warning or an error, followed by a descriptive message. Some errors may have a Details link to display additional details about the error (often a Java stack trace), which can be used when communicating issues with Titania support.

The errors captured in the validation report include:

  • The absence of a DTD or XML Schema for XML documents, often because of an invalid or incomplete project-level document type configuration.
  • DTD/XML Schema validation errors.
  • DITA-specific issues, such as unresolved references.
  • Errors converting print-oriented graphics to web-friendly formats.

The validation report for DITA maps will also contain DITA-specific errors for the topics it references, such as invalid key references. The path to the topic reporting a given error is included in the message.

3.8: Project and File Analytics

Once your content is visible through at least one portal, you can use the Analytics and Feedback views to analyze traffic patterns to your content.
Analytics

Click the time range at the top of the screen to select an alternative time window from which to generate the report charts. You can also exclude traffic from known bots and search engine crawlers by selecting the Exclude known bots and crawlers checkbox. Finally, use the Exclude media references checkbox to configure whether references to non-content objects, like graphics, should be excluded from the reports.

Additionally, you can download a CSV export of the raw data behind the charts, bound by the selected date range, using the Download Raw Data link. Finally, click the Print This Report button, or use your browser's Print function, to print the report.

Project Charts

The charts on for projects include the following.

Traffic
Traffic over the selected time period.
Most Viewed Files
The top 10 most-viewed files.
Most Viewed DITA Map Contexts
The top 10 DITA maps whose topics and/or tables of contents have received the most views over the specified time range across all portals.
Most Up-Voted
The 10 topics with the most 'Yes' votes in the Was This Useful? box.
Must Down-Voted
The 10 topics with the most 'No' votes in the Was This Useful? box.
Top Portals
The portals sending the most traffic to the project.
Top Countries
The 10 most-common countries from which traffic is generated, where the client's geographical region can be determined.
Top Regions
The 10 most-common regions (e.g. states or provinces) from which traffic is generated, where the client's geographical region can be determined.
Top Cities
The 10 most-common cities from which traffic is generated, where the client's geographical region can be determined.
Top Browser Locales
The 10 most-common browser locales.
Top Referrer Domains
The 10 most-popular referring web domains.
File Charts

The charts on for individual files include the following.

Traffic
Traffic over the selected time period.
Most Viewed Topics (DITA Maps Only)
If the file is a DITA map, this report appears, displaying the topics within the map receiving the most traffic over the selected time period.
Most Viewed Map Contexts (DITA Topics Only)
If the file is a DITA topic, this report appears, displaying the map contexts through which this file recieves the most traffic.
Top Portals
The portals sending the most traffic to the project.
Top Countries
The 10 most-common countries from which traffic is generated, where the client's geographical region can be determined.
Top Regions
The 10 most-common regions (e.g. states or provinces) from which traffic is generated, where the client's geographical region can be determined.
Top Cities
The 10 most-common cities from which traffic is generated, where the client's geographical region can be determined.
Top Browser Locales
The 10 most-common browser locales.
Top Referrer Domains
The 10 most-popular referring web domains.
Note: Some metrics may be inexact approximations.
Feedback on Files

The Feedback tab on files can be used to review the various upvotes and downvotes that have been left for that file through all portals, and any comments the users have left when making those votes.

3.9: Conditional Processing (Profiling)

Titania Delivery supports conditional processing using DITAVAL files.

DITAVAL files, specified by the DITA standard, are XML documents describing filtering rules to be applied to a document during processing. Titania Delivery uses DITAVAL files for both DITA and non-DITA documents. In order for a given document to be filtered using the rules in a DITAVAL file, that DITAVAL file must be associated with the document. This can be done in one of three ways.

  1. Specify the location of the DITAVAL file using the metadata key _td.ditaval. The value can either be an absolute path from the root of the project, or a relative path from the location of the file. This is the only way to specify the filtering to use for documents which are not DITA maps.
    Note: After modifying _td.ditaval, the content must be re-processed for the filtering to be applied.
  2. In a DITA map, you can use the DITA 1.3 <ditavalref> element with the other elements in the DITAVAL Reference Domain to associate DITAVAL files with all or part of a map. As described by the DITA 1.3 specification, if more than one <ditavalref> element is present for a section of a map, that section will be replicated and individually filtered for each reference.
  3. Inside any <topicmeta> element, you can specify one or more <data> elements with name="ditavalref" and whose @href attribute identifies a DITAVAL file to apply to the map or topicref. This allows you to associate DITAVAL files with DITA maps authored using a version of the standard prior to DITA 1.3.
    Note: Unlike the <ditavalref> element, multiple <data name="ditavalref"> references in the same <topicmeta> element will be combined into a single rule set; branch replication does not occur.
Note: If you need to profile a document multiple ways, then you must upload it to Titania Delivery multiple times with distinct file names, and associate the appropriate DITAVAL files with each instance of the file.
Ad-Hoc Profiling

It is possible to configure profiling without a DITAVAL file using the special metadata field _td.profiles. The value for this is a string describing the profiling rules. Just as with DITAVAL rules, if specified on a DITA map, it will be applied to all content referenced by that map. If both _td.profiles and _td.ditaval are specified, _td.profiles value takes precedence.

The value may contain multiple rules, separated by whitespace and/or semicolons (;). Each rule is of the form:

ACTION $attribute $operator $value
ACTION
The action to perform. Either INCLUDE or EXCLUDE.
$attribute
The attribute to which the rule applies. May be an asterisk (*) to apply to all attributes.
$operator
The operator to apply. There are four possible operators.
=
Equality. The attribute value must match at least one of the specified values.
!=
Inequality. The attribute value must not match any of the specified values.
~=
Contains Word. The attribute must contain at least one of the words specified in the value. (DITAVAL <prop> elements specify this kind of rule.)
!~=
Does Not Contain Word. The attribute must not contain any of the words specified in the value.
$value
The value or values to test the specified $attribute against using $operator. Values are specified literally, without any quotation marks (" or '). Multiple values can be specified, delimited by vertical bars (|). An asterisk may be specified (*) for all values.

Here are some example rules:

# Exclude elements whose product attribute contains either Product1 or Product2.
EXCLUDE product ~= Product1 | Product2

# Include elements marked with product only if they specify Product1 exactly.
INCLUDE product = Product1
EXCLUDE product = *

# Alternative formulation of the above.
EXCLUDE product != Product1

These rules follow DITAVAL rules for resolution. Specifically:

  • If the evaluation of all rules for a given attribute on a given element resolves to an EXCLUDE action, the element will be excluded. If any rule for an attribute evaluates to INCLUDE, it will be included.
  • For attributes that only have Includes-Word rules (~=), the attribute will resolve as EXCLUDE if and only if all of its words explicitly resolve to EXCLUDE. If a word in an attribute does not have any rules associated with it, the attribute resolves as INCLUDE.

Generally, rules should use the ~= or !~= operators. Matching on exact values is rare. For example:

EXCLUDE audience = secret | top-secret
This will exclude only if the @audience attribute exactly equals "secret" or "top-secret". It would not exclude an element whose @audience contains both. For instance:
<ph audience="secret top-secret">
would be INCLUDED because the value does not exactly match. Rather than using the strict-equality operator, you could use the contains-word operator:
EXCLUDE audience ~= secret | top-secret
This is equivalent to the following DITAVAL rules:
<prop action="exclude" att="audience" val="secret"/>
<prop action="exclude" att="audience" val="top-secret"/>

3.10: Comment Management

From the Comments tab, you can view the comments left on your files through the portals from which it is delivered. For XML content, you can also download the content with the comments embedded for easy editorial updates.
Managing Document Comments

The Comments tab for a document lists all of the comments that have been left on the selected file from all of the portals form which it is visible.

From here, you can delete comments and set their dispositions. You can also download the comments in CSV format, or, for XML content, download the XML document with the comments embedded. For DITA content, the comments will be embedded using <draft-comment> tags. For non-DITA XML content, the comment tag will be driven by the document type's configuration file. See the Developer's Guide for details.

Downloading Comments for a Project

The Comments tab at the Project level is very basic, consisting of two buttons.

Download Comment CSV
Download a CSV report of all comments on all content in the project. This CSV file will account for all the properties of each comment, including, for element-level comments in XML files, identifiers for the element where the comment was left.
Download XML with Comments
This button will download all of the content in the project as a .zip archive. XML files with comments will have those comments injected into them at the appropriate locations.

3.11: Controlling Image Conversion

Titania Delivery automatically converts print-oriented graphic formats such as CGM, TIFF, and EPS into browser-friendly PNG format.

Titania Delivery uses a tool called ImageMagick to perform most graphic conversion. For source formats handled by ImageMatick, you can control the conversion using the following special metadata names.

_td.imageConversion.args.vector

Controls the conversion of EPS graphics.

_td.imageConversion.args.raster
Controls the conversion of TIFF graphics.
_td.imageConversion.args
If neither the vector or raster metadata is set, you can use this as shorthand for image conversion of all graphic types, but this entry will be ignored if the suitable more-specific name is also specified.

These settings can be set at either the project or file level. If set at both the project and the file level, the file-level metadata will take precedence. Any _td.imageConversion.args entry on a file will take precedence over any more-specific setting from the project level.

Important: After modifying image processing metadata, all affected graphics must be re-processed for the changes to take effect.
Default Value for EPS Graphics

The default value for the _td.imageConversion.args.vector option is as follows.

-quality 75 -density 288 -resize 25%
-quality 75
Sets the quality to 75%. Modifying the output quality affects the final compression level as well as the image quality.
-density 288
Sets the pixel density to to 288 pixels/inch. This is four times the default screen resolution of 72 pixels/inch.
-resize 25%
Scales the graphic by 25%, thus effectively "undoing" the higher-than-normal pixel density. This has the effect of reducing hard pixels in rounded curves via anti-aliasing.

The output graphic will be scaled to the same size as any raster preview embedded in the EPS graphic. In some cases, this can be quite small, and the ultimate dimensions may need to be explicitly specified via the -resize option.

Default Value for TIFF Graphics

The default value for the _td.imageConversion.args.raster option is as follows.

-quality 75 -define tiff:exif-properties=false
-quality 75
Sets the quality to 75%. Modifying the output quality affects the final compression level as well as the image quality.
-define tiff:exif-properties=false
Causes ImageMagick to skip reading EXIF properties in the graphic. Otherwise, if a graphic does not contain EXIF properties, or contains invalid/unexpected entries, the conversion will fail.

3.12: Controlling PDF Processing

Titania Delivery automatically extracts full text and metadata from PDF files. Some aspects of this extraction can be controlled using special metadata values.

Titania Delivery uses a software library from the Apache Tika project to extract text from PDF files.

Some PDF files have strings of text whose characters are duplicated. By default, these strings will appear with the duplicated characters when extracted, like "WWiirree" for "Wire". These strings are indexed for searching, which can reduce the accuracy of searches. They can also be displayed as text fragments in search results display.

If you notice these symptoms, you can apply the following metadata either on the item or at the project level.

_td.PDFsuppressDuplicateText

If set to "true", duplicate characters will be suppressed from extraction. The default behavior is "false".

Note: Enabling this behavior may result in some legitimate strings being omitted from the extraction process. It may also increase the processing time.

These metadata can be set at either the project or file level. If set at both the project and the file level, the file-level metadata will take precedence.

Important: After modifying PDF processing metadata, all affected files must be re-processed for the changes to take effect.

3.13: Downloading Projects, Files, and Folders

You can download projects, folders, and individual files from Titania Delivery projects.

  • Select the project and click the Download button in the Details tab to download the entire project as a zip file.

  • You can also download a folder as a zip file. Select a folder and click the Download button in the Details tab to download it.

  • Files can also be individually downloaded. Select a file and click the Download button in the Details tab to download the file.

When you download a zip of a project or folder containing files with manually-specified metadata, the downloaded archive will also contain a file called /HARP-META/metadata.json containing those metadata entries. This special file will be read when the archive is uploaded to Titania Delivery, and the metadata it describes will be assigned. This enables the copying of whole projects or folders along with all manually-authored metadata.

3.14: File URL Configuration

Titania Delivery provides the ability to configure the rules used to construct the URLs clients will use to access content.

When accessing content through a portal, the URL pattern consists of the following formula:

/{portalUrlPath}/{projectUrlSlug}/{fileUrlPath}[/$/{topicId}]
portalUrlPath
The URL path for the portal through which the file is being accessed, as configured when the portal is created.
projectUrlSlug
The URL Slug of the project. By default, this will be a URL-friendly version of the project name.
fileUrlPath
The URL path of the file. By default, this is the path to the file within the project, but can be modified or generated using metadata. More on this below.
topicId
The topic ID of an XML section (e.g. DITA topic or other XML chunk boundary) within the main publication identified by {fileUrlPath}.
Configuring the Project URL Slug

When a project is created, its slug is set to a URL-friendly version of the project name. You can modify the slug using the URL Configuration tab on the project.

Note: Changing a Project's name does not change its URL slug.
Warning: Changing a Project's URL slug will break any external links pointing to content in that project through any portals that use it.

Clicking the Change... button allows you to enter a new URL slug for the project. Clicking Use Project Key will set the URL slug to the project's database key, which is guaranteed to always be unique, but difficult to remember.

Setting File URL Patterns

By default, a file's URL path will match the path to the file within its Project. This can be modified to use metadata-based paths instead by using the File URLs tab in the URL Configuration section of a project. This allows the URL of a topic to be consistent regardless of its physical location within the project.

Below the Edit area, a list of the most unique metadata keys is presented, as a guide for which fields to use. Often, a combination of fields will ensure unique paths to every file. For example:

{lang}/{resourceid}

This path will ensure that all documents with a unique combination of lang and resourcid metadata properties are uniquely addressable.

Warning: Changing a Project's URL pattern will break any external links pointing to content in that project through any portals that use it.
Manually Setting File URLs

You can also manually specify a specific URL path for a file using its Details tab.

Clicking the Change... button will enable you to manually set the URL path for this file. If such a manual entry exists, a Reset button enables you to reset the path to that mandated by the Projects URL pattern.

Warning: Changing a file's URL path will break any external links pointing to content in that file through any portals that use it.

Chapter 4: Portals

A Portal is a content delivery channel. Think of a Portal like its own website targeted at an individual audience. A Portal can pull its content from one or more Projects and filter that content using metadata rules.

4.1: Creating a New Portal

Create a new portal to distribute your content.
  1. Create a new Portal by clicking a New... button in the header of one of the sections in your Portals list
  2. Fill out the Create New Portal dialog.
    Name
    The Name is the "Administrative Name", visible only in the Admin Application.
    Owner
    The owner of the new portal.
    URL Path
    The URL suffix for the address of your portal. This suffix must be at least 2 characters long and cannot contain spaces.
    Theme
    This dropdown allows you to switch between any portal themes that are available to you.
  3. Click Save to create your Portal, then open up the portal details by clicking on its name in your portal list.
  4. Click the Projects tab to associate projects with your portal.
  5. Click the Details tab and click the link at the top to view the portal.

4.2: Associating Projects with Portals

There are two ways to specify content for a portal. Typically, you will add a project that lives in the portal's organization, but you can also make your project available to other organizations and portals.

Specifically, a project can be added to a portal if:

  • The project and the portal are owned by the same user/organization.
  • The owner of the portal is an administrator of the project.
Add a Project to a Portal
  1. Click the Projects tab in the portal settings.
  2. Click the Add button next to the projects listed under Other Candidates you wish to be a part of this portal.
Add a Portal to a Project

Let's say you have a project that you want to share with a portal in another organization.

  1. Open the project's Membership tab.
  2. Click Add Organization... and select the organization that the portal belongs to.
  3. In the Member Type dropdown, make sure the organization is an Administrator.
  4. Now, click the Add Portal... button and select the Portal you want to add to the project.

Your project will be available to be added to the portal.

4.3: Portal Themes

A Portal Theme allows you to control every aspect of the appearance of a Portal, from the HTML and CSS of the web pages themselves to the stylesheets used to convert XML content into viewable HTML.

Portal themes are associated with projects and control how the portal looks.

All Portal themes have the same three top-level folders:

  • pages
  • static
  • xsl

It is also recommended to include a config.xml file at the root level of the portal theme. This file will allow for easy modifications of a portal's appearance without having to modify the theme itself.

The Titania Default Theme

When the Titania platform is initially configured, a portal theme named "Titania Default Theme" is created in the root user's organizataion. This theme is available for use by all portals.

Titania Delivery releases may include updates to the default theme. Changes to the default theme are not automatically added to the existing Titania Default Theme. However, the current default theme is available on any TD platform (version 4.5.0 and above) at the URL /resources/td-default-theme. This theme may be used to update the platform default theme, or as a source for updating custom themes.

The pages Folder

The pages folder contains the Freemarker templates used to draw the application pages required for all Titania Delivery portals to function. Within this folder, the following template files are required:

  • portal-home.ftl - The portal homepage template.
  • searchResults.ftl - The search results template.
  • viewer.ftl - The page displaying a topic in the context of a DITA map.
  • mapViewer.ftl - The page displaying a map or standalone topic.
  • filtered.ftl - The page to display when a user attempts to access content that does not match the portal's metadata filters.

You're free to use the Freemarker <#include> tag to break these pages down into smaller reusable components, but these are the minimum templates required for the Titania Delivery portal to function.

The Freemarker template language allows the use of JSP tag libraries, of which Titania Delivery allows two:

To use a tag library, include code like the following at the top of the template file:

<#assign harp=JspTaglibs['http://www.titaniasoftware.com/harp/taglib'] />
<#assign c=JspTaglibs['http://java.sun.com/jsp/jstl/core'] />

The static Folder

The static folder contains files, such as images, Javascript file, and CSS or LESS stylesheets.

Titania Delivery natively supports CSS stylesheets written in LESS, which is a CSS-like language that provides many convenience features, such as variables and reusable style sets, that make it much easier to author and manage than traditional CSS. Any file with a .less extension will automatically be converted to CSS when it is requested by a page using the <@harp.themeFileUrl> tag.

Files in the `static` folder can be accessed from pages using the themeFileUrl tag from the Titania Delivery JSP tag library. For example, the following tag can be used to address the file /static/images/myImage.png:

<img src="<@harp.themeFileUrl value="/images/myImage.png" />">

If using a config.xml and portal parameters to store paths to theme files, it's recommended to place theme files in specific subfolders within the static folder. This will reduce the number of choices to only relevant files when modifying theme file parameters.

The xsl Folder

The Titania Delivery tag library includes a <@harp.content> tag, which renders XML content from a Titania Delivery project into a portal webpage, optionally transforming it with an XSLT stylesheet from the portal theme's xsl folder.

The full functionality of the <@harp.content> tag is outside the scope of this document, but for now an example should suffice.

<@harp.content url=itemUrl contextUrl=contextHarpUrl
  xsl="/topic/topic.xsl" />

This content tag will render the topic identified by the url attribute, as it exists as a member of the map identified by the given contextUrl attribute, and transform it to HTML using the /xsl/topic/topic.xsl file from the portal's theme.

Using config.xml

The config.xml file introduces parameters which are associated with the portal object. Parameters may be of the following types:

  • <string> - Used for a one-line string of text
  • <text> - Used for larger amounts of text, with three possible formats
    • type="html" - Text is interpreted as entered
    • type="markdown" - Text is converted to valid markdown
    • type="text" - Any HTML characters are escaped
  • <number> - Used to represent a numerical value
  • <checkbox> - Used to represent a boolean value
  • <select> - Used to select options from a group
    • multi="true" - Select an array of options (including order) from a set
    • multi="false" - Select a single option from a set (the same effect can be achieved by omitting the @mutli attribute)
  • <themeFile> - Used to represent the location of a file used in the theme
  • <linkList> - Used to represent a list of links that are used in the theme

If included at the root level of a portal theme, the config.xml file will be used to generate a form in the Details tab of a portal the theme is associated with. The data in this form can be modified to change the value of the parameters associated with that portal, the defaults for the theme are not changed.

Attribute Types

All parameters require a @name attribute which is used to access them from the portal theme's page templates. The @labelattribute is also recommended and supplies an external label for the parameter, while authors can hide a parameter (and force each portal to use its default value) by setting the @hidden attribute to true.

Default Values

@default is used to define default values for the parameters (excluding those of type text, select, and linkList). Defaults for select elements are define by setting the @default attribute on the options desired within the select tag. Defaults for text elements are defined by a separate <default> tag within the <text> tag. The @default attribute should be included if possible when writing your config.xml, but is not required.

Using Parameters

These parameters must be defined in config.xml, but may be used anywhere in the portal theme's page templates. Access to these parameters is gained by using the parameters collection on the portal object. For example, if using a parameter named "stylesheet", it would be accessed as portal.parameters.stylesheet.

<link rel="stylesheet"¬·href="<@td.themeFileUrl value="${portal.parameters.stylesheet}" />"/>

See the Developer's Guide for more information on portal theme parameterization.

4.4: Portal Customization

Portal appearance can be customized by changing the Portal Theme, or by modifying the values of the parameters associated with the portal.
Changing the Portal Theme
  1. Select the Details tab in portal settings
  2. Locate the Theme dropdown menu near the top of the page and select your desired Portal Theme
Modifying Portal Parameters

The Details tab of the portal settings menu will render a Portal Theme's config.xml file into a form allowing for customization of your portal. Each option in this form is used in some location in the selected Portal Theme, and changes will reflect in the portal.

Note: Modifying portal parameters requires a theme that makes use of a config.xml file.

To change a parameter, simply change the current value to the desired value and press the Apply button to save these changes. If a mistake is made before saving your changes, the Reset button will revert the values of your parameters to those currently associated with the portal.

Parameters with names common to multiple portal themes will be shared among those themes if the portal's selected theme is switched.

4.5: Portal Features

Certain portal features can be easily toggled on or off.
Portal Features

This part of the page allows you to control which features are enabled for your portal.

Anonymous Browsing
Selecting this will allow your portal to be visible to everyone, including anonymous users. If unchecked, it will require users to log in before viewing content.
Document-Level Comments
This allows users who are currently logged in to leave comments on the document itself. This can be useful for noting changes, or whether or not a user finds a particular document should be updated or replaced.
Element-Level Comments
This allows users who are currently logged in to leave comments at any level within the document, so that a specific paragraph or image or list could be commented upon.
Custom Assemblies
This feature enables users to build custom publications from the DITA topics in the portal.
“Was This Helpful” Widgets
At the end of each document, there is a “Was this Helpful” dialog box that allows the user to select ‘Yes’ or ‘No’. This allows the company to better track which documents are being marked, and could help pinpoint areas that users feel could use more improvement.
Show FreeMarker Stack Traces
Enable display of Java stack traces in FreeMarker errors and portal error pages.
Note: Displaying Java stack traces can be a security vulnerability in some situations. Before enabling this feature, verify compliance with your company security policy.
Search Engine Instructions

This section allows you to specify whether and how your portal is configured in the /robots.txt file, used by reputable search engines and crawlers to determine how and whether to index certain pages in a portal.

None
The portal path will not be mentioned in robots.txt.
Disallow
The portal path will appear with a Disallow directive in robots.txt.
Allow
The portal path will appear with a Allow directive in robots.txt.

4.6: Search Syntax

Titania Delivery provides a search component to quickly and easily find content within a Portal. While TD retrieves relevant search results using plain-text searches, it also allows for advanced metadata-based queries. The search syntax is the same whether entered in the Portal user interface or used as the query attribute of any of the search tags in the Titania Tag Library. Portal Theme developers can utilize Titania Delivery's search capabilities to customize the content of their Portal pages.

Standard search results are "scored" as a function of the frequency of the search term in a given document and the frequency of that search term within all documents in the Portal. All queries are case insensitive.

Full-text indexing

TD can index the textual contents of the following file formats.

  • XML and HTML Content
  • PDF
  • Microsoft Word, Excel, and Powerpoint
  • Text and Markdown

All other content types, regardless of whether or not they contain textual content, only have their filename indexed.

Indexed Fields

Beyond doing a full-text index, TD indexes text into numerous different fields where possible. These fields have different weightings on search results, so that search results with "hits" in one field may be returned with a higher relevancy score than those with a hit in a different field. The indexed fields, in order of their weighting, are:

  1. title
  2. searchTitle
  3. keywords

The remaining indexed fields are all weighted the same, and all less than the above. Those include:

  • itemKey
  • projectKey
  • filename
  • id
  • contextKey
  • created
  • lastModified
  • content

For example, given two documents, if docA has the term "Titania" in its title field, and docB has that same term only in its content field, a query for "Titania" will result in both documents, with docA returned before docB.

If a document does not have a title, its filename is used for the title field. If a document does not have a search title, its title is used for the searchTitle field.

TD extracts the title and kewords from XML content. In addition, it extracts the searchTitle from DITA topics and maps. The title, description (for generic text), and keywords on non-text-based content, like zip archives or images, can be set in the admin application.

Single Word Searches

The simplest search in TD is a single word. The search engine will match on exact matches and also partial matches. For example, "Big" will match "Big", "Bigger", and "Biggest". The search is case insensitive.

Multi-Word Searches

Search queries containing multiple words are considered as "OR"s by the search engine. For example, a search for Titania Delivery will match documents containing either Titania or Delivery, with documents containing both terms being returned with a higher relevancy than those with only one.

To search for the phrase Titania Delivery place the query in double quotes, as in "Titania Delivery"

Operators

TD supports "AND" and "OR" operators. For example, to find documents containing both the words Titania and Delivery, use the query Titania AND Delivery. Complex queries can be achieved by combining these operators. For example, the query Titania AND Delivery OR Sync will return documents that contain the term "Titania" and also either "Delivery" or "Sync".

The not operator (-) can be use to exclude documents that contain a certain term. A search for -Titania will return all documents that do not contain the term "Titania".

The "*" (asterisk) wild card can be used to mean zero or more of any character. A query of * by itself will return all documents accessible to the portal. A search of *ania will return all documents with words ending in "ania." A search for Del* will return all documents with words starting with "Del". It can also be used in the middle of a word. A search for D*y will return all documents with words starting with "D" and ending in "y", such as "Delivery". As always, these searches are case insensitive.

Proximity Searching

The "~" (tilde) operator can be used to search for words within a certain distance of each other. For example, "Titania Delivery"~2 would return documents where the terms "Titania" and "Delivery" appear with no more than two words in between. Documents with "Titania offers a Delivery solution...", "Titania does Delivery...", or "Titania Delivery" would all be returned.

A document with "Titania specializes in the Delivery of..." would not be returned.

The order of the terms is not important. The words could be found in any ordering so long as the absolute distance between them does not exceed what is specified. Therefore, the same query specified above would also return documents with "...delivery of Titania products...".

Field searches

Searches can be executed on a specific indexed field or fields. For example, to find documents with "Titania Delivery" in the title, the query title:"Titania Delivery" could be used.

Metadata Fields

TD indexes metadata set on documents. The name of the indexed field is the name of the metadata rule followed by _md. The value of that field is an array of all of the metadata values associated with that name.

For instance, if a document has a metadata rule of extension with a value of docx, the metadata field would be called extension_md and the value would be "docx".

If a document has a metadata rule of audience with the values novice and intermediate, the metadata field name would be called audience_md and the value would be ["novice", "intermediate"].

You can test the existence or absence of a metadata field using the special range-based query [* TO *].

audience_md:[* TO *]

To query for all documents that do not have a particular metadata rule:

-audience_md:[* TO *]

To query for documents that have a particular value for a metadata rule:

audience_md:novice

Note: The search engine has a hard limit on the number of results that can be scrolled through of 10,000. For instance, when paginating through large datasets and viewing records 9,990-9,999, attempting to fetch the next page will result in an error.

4.7: Filtering Content with Metadata

You can filter the content visible in a portal using metadata rules.

Imagine a system managing the documentation for two brands: Acme and Uber. All of the documentation is stored in a single project, with some content marked brand=acme, some as brand=uber, and yet others that apply across brands as brand={acme, uber}. However, each brand can have its own Portal, each pointing to the same single project, but restricting what's available using metadata filtering. Such an arrangement might look like this:

Controlling the Available Publications with Content Filtering

When you associate a project with a portal, by default all of the files in that project become available through that Portal. However, you can filter the content for the portal by assigning metadata filters. If you were to upload a project and put it on the portal, it would appear like the following:

Notice that the Available Publications list includes every file in the portal, regardless of its format, including graphics as well as DITA maps and topics. In addition, the topics will be displayed as self-contained documents in their own right, not as parts of the DITA Map(s) that reference them. This is almost certainly not what you want. In general, DITA maps should be treated as top-level publications, and most topics should be made available as they appear underneath a DITA map, not as publications in their own right. Fortunately, this can be accomplished by applying metadata to a map and then filtering the portal so that only the map and the contextualized topics beneath it appear in the portal.

  1. First, go to the Metadata tab on the DITA map.
  2. You will be prompted with the following window:

    Click +Add, and the following box will appear:

  3. For this example, we are going to use the metadata portalVisible. In the Name field, type: portalVisible, and in the Values field, type: true.
    Note: Metadata will be case sensitive when using it as a content filter, so be sure to use appropriate capitalization.
  4. Ensure that the checkbox labeled Cascades to Referenced Content (DITA Maps Only). This will ensure that the metadata applies to the contextualized copies of the topics that are generated when the DITA map is processed. For more information about DITA processing behavior, see How Content Processing Works.
  5. Click OK.
  6. Now click Save and Close. It should now appear in the list of metadata.
  7. Now, to apply it to the Portal, go back into the Portal’s settings, and go to the Content Filter tab.
  8. Click Add and the Add Filter dialog will appear:

    In the Name field type: portalVisible, and set the value to true. Click OK to dismiss the dialog.

When you refresh your portal, it will now only show the documents on which you added the portalVisible metadata.

This is better. Only the top-level DITA map is included in the Available Publications list, and the graphics and topics are only displayed as components under that publication.

Note: The portal content filters will be automatically added to all searches executed in the portal. Only items that pass the filter will be included in the results.

4.8: Search Facets

Search Facets allow your users to filter your search results in a Portal based on the content's metadata.

If your documents use metadata in a way that differentiates different types of topics or publications, for example: @category="owners_manual" and @category="repair_manual", you can add Search Facets to your Portal based on the metadata and add more power to your search results.

The Portal administrator can configure Titania Delivery with metadata types to be used as Search Facets.

Users executing searches on a Portal can filter the results using these metadata values. Titania Delivery also displays the number of results for the current search for each value of filterable metadata.

4.9: Offline Packaging

Some Titania Delivery installations may offer the option to package content for offline viewing.

These offline packagers are typically an HTML representation of the online content, with similar styling. However, some applications may provide the ability to package documents in completely different ways. Packages are Zip archives containing the files necessary to view the content without an internet connection. See the Titania Delivery Developer's Guide for additional details.

Note: At this time, custom document assemblies cannot be included in offline packages.

4.10: Portal Analytics

Portals provide robust analytical reports about how they're being used.

Click the time range at the top of the screen to select an alternative time window from which to generate the report charts. You can also exclude traffic from known bots and search engine crawlers by selecting the Exclude known bots and crawlers checkbox. Finally, use the Exclude media references checkbox to configure whether references to non-content objects, like graphics, should be excluded from the reports.

By default, all projects associate to the portal are included. If more than one project are associated to the portal, a selection box labelled Included projects will be displayed. Uncheck projects under Included projects to exclude them from the visualization reports.

Portal analytics include the following reports:

Traffic
Traffic over the selected time period.
Top Projects
The top 10 projects shared via the portal, in terms of traffic received.
Most Viewed Files
The top 10 most-viewed files.
Most Viewed DITA Map Contexts
The top 10 DITA maps whose topics and/or tables of contents have received the most views over the specified time range across all portals.
Most Up-Voted
The 10 topics with the most 'Yes' votes in the Was This Useful? box.
Must Down-Voted
The 10 topics with the most 'No' votes in the Was This Useful? box.
Top Browsers
The top browser family names, as determined from the browser's User-Agent request header value.
Note: Modern Microsoft Edge™ browsers (released in late 2019) were recorded as "Chrome" browsers in Titania versions prior to 4.3.
Top Countries
The 10 most-common countries from which traffic is generated, where the client's geographical region can be determined.
Top Regions
The 10 most-common regions (e.g. states or provinces) from which traffic is generated, where the client's geographical region can be determined.
Top Cities
The 10 most-common cities from which traffic is generated, where the client's geographical region can be determined.
Top Browser Locales
The 10 most-common browser locales.
Top Referrer Domains
The 10 most-popular referring web domains.
Note: Some metrics may be inexact approximations.
Downloading Reports

The pie charts only show the top ten results for any given metric. Titania Delivery allows the downloading of all statistics in a convenient CSV format.

Select the Download tab on the Metrics section of the portal administration area.

Specify the date range and reports you wish to download. Click the Download button to receive a ZIP archive containing CSV files for each report.

Content View Records
Every view of a piece of content through a portal will be recorded in this report, including a timestamp, identifying information for the user, as well as details of their browser, operating system, and device.
Note: The modern Microsoft Edge™ browser name is recorded as "Chrome" prior to Titania version 4.3. Starting with version 4.3, the name of these browsers is recorded as "Edge", and the "User Agent" string will have been modified from its original form to change the spelling of "Edg" to "Edge". You should take this change into account when performing further analysis on the "User Agent" values. If it is necessary to distinguish between Edge™ versions, use the version identifier.
Search Records
Every search attempted via the portal will be recorded, including search term, the number of results, and whether the user needed to navigate past the first page of results.
User Comments
This report contains element and document-level comments in the portal, including identifying information for the document and, when applicable, the element where the comment was left.
Helpfulness Votes
This report includes the responses, including comments, left through the Was This Helpful widget that appears on many portal web pages.
User Data Entries
This will cause the zip to include a userdata folder, containing the data stored using the Portal Theme SDK's UserData and SiteData features. Each user with UserData entries will have its own XML document containing that user's data. In addition, there will be a site.xml file containing any SiteData.

4.11: Managing Portal-Generated Data

Some portals may be capable of gathering and storing persistent data and content. This data can be accessed via the Portal administration interface using the Portal Data interface.

The Titania Delivery Portal Theme SDK has three mechanisms for storing persistent data.

  1. The UserData and SiteData key-based storage methods.
  2. The SiteData indexed data storage methods.
  3. The SiteData content creation and management methods.

Each of these three systems manages data in a different way.

Key-Based Data

The Key Stores tab allows you to view the key-based data stored via the UserData or SiteData APIs. The Select a User ID dropdown allows you to select a user ID whose data to view; the --site-- key displays the keys stored via SiteData. The keys for the selected user or site will be presented along the left; selecting one will display a JSON-formatted presentation of the data for that key on the right. Clicking the Download button allows you to download the data for that user or the site as a zip archive.

Indexed Data

The Indexed Data tab allows you interrogate the data stored using the indexed data methods on the SiteData interface. The Index field allow the selection of an index containing data, and the Search field allows a query used to select data from that index, using Elasticsearch query string syntax. The results are displayed below as a series of key-value pairs; longer values are truncated and can be viewed by clicking on the magnifying glass icon. The Download button will download the current search results.

Portal-Generated Files

Each Portal has a Project whose primary purpose is to hold the content generated from the SiteData API's putFile() and related methods. You can access this file using the View portal-generated files button in the Portal Data section. The contents of this portal can be viewed and managed the same as any other Project.

Chapter 5: Document Types

A Document Type is a special kind of Project that contains the XML grammar definition files – DTDs and XML Schemas – that are used to parse XML content.

More specifically, a document type consists of:

  • The DTD and/or XML Schema files describing the grammar of the document type.
  • A catalog file for resolving references to document type files from projects and other document types.
  • For non-DITA document types, a doctype descriptor file describing the roles of the elements in the document type, such as links, graphics, and chunk divisions. (DITA documents are self-describing and do not require this file.)

Document types may also contain the following optional files.

  • An XSLT stylesheet for generating the administrative HTML preview for files using this document type.
  • XSLT files for custom pre-processing of documents using this document type and/or, for DITA map document types, the topics referenced from maps of this type.
  • An XSLT for generating HTML from the document type that can be dynamically referenced from portal theme XSLT stylesheets.
  • An XSLT transform defining metadata rules for files using the document type.
  • A file mapping embedded properties in non-XML documents, such as PDF and Microsoft Office files, to Titania Delivery metadata. Any project using a document type with one of these metadata mapping files will leverage those mappings.

A document type may be based on another "parent" document type, in which case it inherits all of the catalog entries, preview stylesheets, and metadata rules. For example, you could create a custom DITA topic specialization based on the base "DITA" document type, inheriting all of the catalog entries, metadata configurations, and preview stylesheet from that document type, without having to copy or build your own.

The default Titania Delivery installation includes the DITA 1.3 document types and DocBook 5.0, as well as a document type container with some default non-XML metadata mappings.

5.1: Creating a Document Type

Document Types provide Titania Delivery with DTD or XML Schema files for parsing and validating XML content. They can stand alone or be based on existing document types.
  1. Create a new document type by clicking the New... button on the Document Type list page.

You are now ready to upload your doctype files to your new document type in Titania Delivery .

5.2: Document Type Contents

All document types must contain the DTD and/or XML Schema modules used to define their grammar. They must also contain a catalog file, and may contain a preview stylesheet and custom metadata rules.

The DTD and schema files should be laid out in a folder structure such that the relative paths between them will resolve, just as they would be on your local file system.

The catalog file must exist at the root level of your project and be named one of the following:

  • catalog.xml
  • catalog.txt
  • catalog

Titania Delivery supports both the XML Catalog format and TR 9401 text catalog format. This catalog will be used to resolve references to files in the document type from projects and other document types.

In addition, a document type can contain a preview stylesheet for generating the admin application previews. This stylesheet must be at the root level of the document type and be named preview.xsl. If no preview stylesheet is specified then the stylesheet from the document type's parent is used. If there is no parent, or the parent does not specify a preview stylesheet, then the raw XML of the file will be displayed.

Finally, a document type may specify an XSLT transform containing custom metadata rules. This file must be located within the document type at /HARP-META/metadata.xsl. If the document type has a parent, then these metadata rules will be used in addition to those from the parent; they do not replace the rules from the parent. For instructions on how to configure custom metadata rules, refer to the Developer's Guide.

5.3: Relationships between Document Types

There are times when a document type might need to reference modules from another document type.

Frequently, this is handled by basing one document type on another, but sometimes there is no way for that to work. For instance, a custom DITA Map specialization, whose parent document type is the built-in "DITA" document type, might reference a domain specialization stored in a separate document type. Since that domain is not part of the basic "DITA" document type, it cannot be included via inheritance.

In situations such as this, you can make the catalog entries from one doctype available to another by adding it to that document type's XML Configuration. Click the XML Configuration tab of the document type that needs to reference an external module, and add the other document type to the list. Modules in the source document type may now reference the Public IDs, System IDs, and URIs that are defined in the other document type's catalog file.

5.4: Associating a Document Type with a Project

XML identification and validation in Titania Delivery projects requires that the project be associated with document types.

When a project is created under a user or organization, it will automatically be associated with all of its owner's existing document types. You can subsequently add additional document types from other users or organizations.

To associate a document type with a project:

  1. Select the top-level project folder in the document tree and open the XML Document Types tab.
  2. Click + button next to one of the existing document types, and select the document type you want to associate with the project.
  3. The new document type will appear after the entry whose + button was used. To reorder the document types, use the orange drag anchor next to each entry.
    Important: The ordering of document types is important. If a public ID or URI exists in more than one document type associated with the project, the matching entry from the first document type in the list will be used.

Now, when XML content referencing the document type is added to the project, it can be parsed and validated using the DTD or XML Schema rules associated with the document type. This will also allow Titania Delivery to identify content using DITA specializations. For more information, see Document Types.

Note: Content that was added before the document type association was configured will need to be re-processed.

Chapter 6: Portal Security Configuration

Organizations can configure OpenID Connect authorization providers, SAML 2.0 identity providers and/or LDAP repositories to secure portals owned by the organization. An organization may have any number of connected authentication services, but a given portal may only be associated with a single authentication system.
Note: Security, LDAP, SAML 2.0 and OpenID Connect are all very complex. A deep overview of these subjects is outside the scope of this document. Users attempting to set up security configurations should have knowledge of how LDAP, SAML 2.0, and/or OpenID Connect function before reading this section.
Organization Security Configuration Page

6.1: Configuring OpenID Security Profiles

Note: Oberon Technologies cannot guarantee that all OpenID Connect providers are compatible with Titania Delivery and its underlying OpenID framework and implementation. Experience has shown that different software producers have implemented the OpenID and OAuth2 standards in slightly different ways that may be incompatible with Titania Delivery. The OpenID providers that are known to have been configured to work with Titania Delivery are:
  • Microsoft ADFS
  • Salesforce
Note: The Titania Delivery OpenID framework may not work with Symantec SiteMinder v12.8 OpenID providers, due to an incompatibility in handling some values during the protocol exchange.
Note: Current customers who intend to use OpenID authorization should contact Titania Product Support (through their support portal) to arrange testing on a non-production Titania Delivery platform, to verify that their provider and configuration will work as expected. New customers who intend to use OpenID authorization should contact their project manager for support.
Note: Oberon Technologies does not provide detailed technical support for setting up and configuring a customer's OpenID provider.
A Titania Delivery system administrator will need the following configuration items in order to set up an OpenID provider. Consult your OpenId provider’s documentation for details on how to create and register a Titania Delivery instance as an authenticated client application (or relying party).
  1. The “/.well-known” endpoint — this is a provider-specific URL which returns essential information about an OpenID application. Some examples include “https://[server name and app ids]/.well-known/openid-configuration, where [server name and app ids] is the provider host name plus any identifiers specific to the desired client application. Each OpenID provider and each registered client application on the provider will be unique.

  2. The Client Id is generated by the authorization provider when a client application is created by your OpenID system administrator.

    Note: Some providers allow Client Id values to be user-generated.
  3. The Client Secret is also generated by the provider when the client application is created.

  4. When configuring the provider, the OpenID system administrator must specify the redirection URI for your Titania Delivery platform. This URI must conform to the following pattern: https://[hostname]/login/oauth2/code where [hostname] is your Titania Delivery server platform.

    Note: OpenID providers use various names for the redirection URI, such as “Callback URLs” or “Authorized redirect URIs”.

This section describes the configuration of OpenID providers with Titania Delivery. The details of registering OpenID clients such as Titania Delivery vary according to the provider. Titania Delivery follows the OpenID Connect 1.0 specification.
  1. Go to, or create, a Titania Delivery Organization to add a new authentication system.
  2. Click Authentication Systems.
  3. In the Portal Authentication Systems page, click New in the OpenID Providers section.
    The OpenID Provider window will appear.
  4. In the Display Name field, enter a label for the OpenID provider. This label should be unique among all OpenID profiles on your TD platform, to avoid ambiguity when selecting a security profile for a portal.
  5. In the Issuer field, enter your OpenID Provider Issuer URL. (See Section 2 of the OpenID Connect 1.0 specification and your OpenID provider documentation.)
    Note: TD expects to find a JSON document describing the OpenID provider configuration by concatenating /.well-known/openid-configuration to this URL as described in Section 4 of the OpenID Connect 1.0 specification. DO NOT INCLUDE the /.well-known/openid-configuration in the issuer URL.
  6. In the Client ID field, enter the Client Id created or generated when the client application was created by your OpenID system administrator.
  7. In the Client Secret field, enter the Client Secret generated when the client application was created by your OpenID system administrator.
  8. If your OIDC provider requires custom scopes to process an authorization request, enter them in the Custom scopes field, separated by spaces. Otherwise, leave this field blank. If present, custom scopes will be appended to the default scopes used for the OpenID Connect protocol.
  9. Click the Save button.
    Note: Before saving the configuration, the system will validate the issuer URL. If the URL cannot be reached, the configuration will not be saved.
Titania Delivery will display the newly-created OpenID Connect provider in the Portal Authentication Systems window and will store the configuration information, dynamically updating the server configuration.
Note: If the configuration information needs to change, the Save button will update the existing OpenID configuration.
    Note:
  • The OpenID administrator must ensure the authorization provider supports the “openid” scope and either the “email” or the “upn” scopes. This may require modifying the default configuration with some OpenId Connect providers when setting up a client application.

  • The OpenID administrator must ensure the authorization provider complies with Authorization Code flow as described in Section 2.1.5.1 End-User Grants Authorization and RFC 6749.

6.2: Configuring SAML Security Profiles

How to set up a Titania Delivery security profile to use an external SAML IdP for portal authentication.
Note: Titania Delivery administrators who are creating SAML security configurations should have a basic understanding of SAML 2.0 as described in the SAML V2.0 Technical Overview. Titania administrators must work with a SAML administrator in their organization who can configure the chosen SAML Identity Provider (IdP) application to register Titania Delivery as a SAML Service Provider (SP), and configure it appropriately. The details of registering service providers with an IdP varies by vendor; consult your IdP's documentation for details on how to register and configure service providers.
Overview

The high-level steps to set up a TD security configuration for a SAML IdP are:

  1. (Titania Administrator) Export the Titania Delivery SAML Service Provider metadata as an XML file. This is the "SP metadata".
  2. (SAML Administrator) Register Titania Delivery with the chosen SAML IdP, using the information in the SP metadata, and additional requirements as specified in SAML Identity Provider SSO Configuration.
  3. (SAML Administrator) Export the "federated metadata" from the IdP, or provide the URL for the federated metadata.
    Note: Alternatively, the required information can be entered manually in the TD security configuration form. See Manual SAML Security Configuration.
  4. (Titania Administrator) Set up the SAML security profile in Titania Delivery, either manually, or by importing the federated metadata.
  5. (Titania Administrator) As needed, associate the SAML security configuration with portal(s) that will use this IdP for authentication. See Portal Security

SP Metadata and certificates

The Organizations Authentication Systems admin page provides persistent links to the following SAML resources, under the SAML 2.0 Identity Providers heading:

Service Provider Metadata
The Entity Descriptor (SP metadata) XML for Titania Delivery, for use in configuring IdPs to accept authentication requests from Titania Delivery. The URL for this metadata is persistent for the Titania Delivery platform, and can be registered with IdP services that support automatic metadata refresh.
SP Signing Certificate
The certificate corresponding to the key that will be used by Titania Delivery when signing authentication requests.
SP Encryption Certificate
The certificate that must be used by Identity Providers when encrypting authentication responses being sent to Titania Delivery.
Important: The keys used by all SAML services generally have expiration dates of 6 months to 1 year, and will be replaced over time. Be sure to consult your Identity Providers and Titania Software to ensure that keys used for SAML authentication remain up-to-date.
Entity ID and IdP-Initiated SSO

If you plan to use IdP-initiated SSO (as described in SAML V2.0 Technical Overview, Section 5.1.1), you should configure your SAML identity provider to send SAML SSO <Response> messages with a form control or URL query parameter named RelayState whose value is the fully-qualified URL of the requested portal. Otherwise, if there are multiple SAML IdP Configurations with the same Entity ID on the TD platform (across all organizations), Titania Delivery may fail to fulfill the request. If the RelayState parameter is not provided, then Titania Delivery will not display a portal page.

If you create SAML IdP Configurations with duplicate Entity IDs, and do not use IdP-initiated SSO, this will not be a problem. Duplicate Entity IDs will typically be created automatically when importing IdP federated metadata from the same provider.

Additional SAML user assertions

SAML IdPs may be configured to include additional assertions (properties) about the user with a successful authentication response. These properties are stored with the portal user object, and are available for use in portal themes and for dynamic content filtering.

Is it possible for the authentication request to specify what properties to include in the response, or is it entirely up to the IdP?

SAML user assertions do not need to be registered with Titania Delivery in advance. All such assertions in an authentication response are put into a map object, using the SAML technical name as the key. This map is available as the user.properties property.

Provide example of Assertion markup and freemarker code to access user property.

Microsoft ADFS IdP requirements

From TD version 4.5.0 and on, Microsoft ADFS SAML IdP Relying Party Trusts property must be set as described below.

An ADFS administrator must use a PowerShell command to modify the SamlResponseSignature property of any relevant Relying Party Trusts.

Use the following PowerShell command to view the property:

Get-AdfsRelyingPartyTrust -Name [Relying Party Trust Name]
where [Relying Party Trust Name] is the Display Name of the trust. Search for the value of the SamlResponseSignature property. The required value is MessageAndAssertion.

Use the following PowerShell command to set the property:

Set-AdfsRelyingPartyTrust -Name [Relying Party Trust Name] -SamlResponseSignature MessageAndAssertion
where [Relying Party Trust Name] is the Display Name of the trust.

6.2.1: Manual SAML Security Configuration

Manually creating a SAML security configuration.

From the Organizations Authentication Systems page in the TD admin application, click the New... button next to the SAML 2.0 Identity Providers heading. This dialog allows the manual configuration of the Identity Provider settings.

SAML Identity Provider Details Dialog
Name
The display name for the configuration. This is not used in the authentication process, and is simply a label for the configuration.
Organization Name
The Organization Name for the IdP.
Entity ID
The entity ID for the IdP service.
NameID Policy
The NameID policy to specify when making authentication requests with the IdP.
Note: Not all Identity Provider implementations honor the NameID policy specified in authentication requests. It is often the case that the NameID value must be separately configured in the Identity Provider service's configuration settings.
Important: The NameID provided by the IdP is used as the persistent user ID within the portal for purposes of tracking comments made by the user, and assemblies owned by the user. SAML 2.0 allows for transient NameIDs, such that every authentication results in a different value for the same user. While this will work for authentication purposes, Titania Delivery will treat each new session as if it were a new user, and so the ability to manage assemblies and comments from previous sessions will be lost. In general, we strongly recommend using a persistent NameID value, such as e-mail address or other persistent ID.
Display Name Attribute
The attribute that will be included in any authorization response which corresponds to the user's display name.
Single Sign-On (SSO) Endpoint URL
The URL that the IdP service uses to accept authentication requests. This may be found in the federated metadata provided by the IdP, or directly from the IdP configuration.
Request Mode (SSO)
The mode to use when issuing authentication requests to the IdP service. It is recommended to use "HTTP POST".
Single Log Out (SLO) Endpoint URL
The URL that the IdP service uses to accept logout requests. This is typically the same URL as the Single Sign-On Endpoint URL. It may be found in the federated metadata provided by the IdP, or directly from the IdP configuration.
Request Mode (SLO)
The mode to use when issuing logout requests to the IdP service. It is recommended to use "HTTP POST".
Sign Authorization Requests
When checked, authorization requests sent to the IdP will be signed using the key corresponding to Titania Delivery's signing certificate. It is recommended always to sign requests, for greatest security.
X.509 Certificate String
The Base64-encoded string representing the certificate that will be used to verify signed values in authentication responses provided by the IdP. This value is provided in the IdP''s federated metadata, or it can be obtained directly from the IdP configuration. It is recommended to configure your IdP to sign responses, for greatest security.

6.2.2: Importing SAML IdP Settings

SAML IdP service provider settings may be exported from the IdP as a "federated metadata" XML file; alternatively, it may be retrieved from a specified URL on the IdP.

To import the federated metadata and automatically configure the TD security profile, select the Organizations Authentication Systems page in the TD admin application, and click the Import... link next to the SAML 2.0 Identity Providers heading.

SAML IdP Import Dialog

SAML federated metadata can be imported either from a public URL or by uploading the metadata file. Select the appropriate radio button and provide the URL or file. Then click OK.

Note: The Entity Descriptor markup will not include the display name property, which is required for Titania Delivery to function as expected. After importing the IdP metadata, open the resulting details and provide the appropriate value in the Display Name Attribute setting. By default, Titania Delivery uses displayName for this purpose if available, and will use the provided NameID value otherwise.

6.2.3: SAML Identity Provider SSO Configuration

Configuring a SAML Single Sign-On (SSO) provider for security and compatibility with Titania Delivery.

Best practices for configuring a SAML identity provider to register Titania Delivery as a service provider.

Signing Requests and Responses

Requiring signed requests is one way the IdP can verify that requests are sent from a trusted relying party. The IdP should configured to required signed requests, and to send signed responses.

Assertion Consumer Service URL

The Assertion Consumer Service of a SAML relying party is responsible for receiving and processing SAML responses . On the Titania Delivery platform, the assertion consumer service is available at a URL like https://[td-hostname]/portals/saml2/assert. The <AssertionConsumerServiceURL> element of the TD service provider metadata XML file contains the specific value for each TD platform. When registering Titania Delivery as a service provider with your IdP, the configuration will include this URL, which is used to route responses from the IdP to Titania Delivery.

The assertion consumer service URL provided in the SP metadata may be over-ridden in SAML authentication requests to the IdP. All requests originating from Titania Delivery will include an <AuthnRequest>/@@AssertionConsumerServiceURL attribute with a value like https://[td-hostname]/portals/saml2/assert/[registration-id], where [registration-id] is an arbitrary alphanumeric string. The SAML 2.0 Core specification requires IdPs to:

  1. Recognize URLs like this as valid assertion consumer service URLs for this service provider. Different IdPs will have different ways of configuring this. It might be possible to define the valid assertion consumer service URLs using a pattern with a wildcard, such as https://[td-hostname]/portals/saml2/assert/*. In other IdPs, if the requests are signed, they will use the assertion consumer service URL provided in the request.
  2. Return the authorization reponse to the URL provided in the request (including the registration-id).

RelayState

The SAML 2.0 Bindings specification defines a "RelayState" mechanism for preserving state between SAML entities during message exchanges. The specification requires responders to faithfully include any received relay state data in their response. In HTTP POST and redirect protocols, relay state is transmitted as a URL-encoded value of a URL parameter (or form control) named "RelayState".

Authentication requests originating from Titania Delivery will include a "RelayState" URL parameter (or form control) with a value representing the secured portal URL. This value must be returned with the authorization response.

For IdP-initiated authentication, the SAML authorization response sent to the assertion consumer service must include a "RelayState" parameter with the URL-encoded value of the URL of the requested portal.

6.3: Configuring LDAP Connections

Titania Delivery connects to your authentication server via the LDAP protocol. The specific configuration can be set up in the administrative application.

LDAP configurations are associated with Organizations. To establish an LDAP connection, select the Security category of the organization and click the New... link next to the LDAP Connections header to raise the LDAP Security Configuration dialog.

LDAP Configuration Dialog
Name

The field names on this page do not appear in bold like in other sections.  For example, see Part III.1.

A name identifying the LDAP connection.
Host
The hostname or IP address of the LDAP protocol listener on the directory server.
Port
The port number on which to connect to the directory server.
Use Secure Connection
Whether to use LDAPS to communicate with the directory server.
Base DN
The full Distinguished Name of the node within the directory server.
Admin User DN
The full Distinguished Name of the account Titania Delivery will use to connect to the directory server.
Admin Password
The password for the account identified in the Admin User DN.
Additional User DN
Additional Distinguished Name segments to prepend to Base DN when querying the directory server for users.
User Name Property
The property in the directory system that will be used to test the user name for authentication attempts.
Additional User Filter
An LDAP query to append to the default query used when searching for users in addition to the User Name Property.
User Properties
Additional object properties from the directory server to retrieve when a user logs in. These properties will be made available in the properties collection on the PortalUser object available to all portal pages once a user logs in.
Additional Group DN
Additional Distinguished Name segments to prepend to Base DN when querying the directory server for user groups.
Group Name Property
The property in the directory system that will be used as the group's name.
Additional Group Filter
An LDAP query to append to the default query used when fetching groups.
Group Membership Determination
This is the method used to determine whether a user is a member of a group.
None
No group membership checks will be performed, and group-based access control will be disabled.
User Attribute
Use this when the directory server supports a dynamic property on the user object listing the groups to which a user belongs. For example, the memberOf property in Active Directory.
Group Query
Use this when the directory server does not support any sort of memberOf property. When group-based access control is configured for a portal, Titania Delivery will first authenticate the user, and then execute a second query to verify that the user is a member of the specified group.

6.4: Portal Security

A portal can be configured to allow or require a user to authenticate before being granted access.

You assign a security system to a portal using the portal's Authentication tab.

Portal Security Association

The list of available security configurations is populated by those available in the organization that owns the portal, as well as those set up in the System Administrators organization, which are global. Once the portal is associated with a security configuration, additional details can be specified.

If using an LDAP-based configuration, you can specify the lists of users and/or organizations within the repository that will have access to the portal. You can also specify which users should be granted Comment Moderator rights within the portal, meaning that they can edit, delete, and set dispositions of other users' comments.

Note: Only Owners and Administrators in the security configuration's organization can modify the LDAP allowed users and organizations. If the security configuration was defined in the System Administrators organization, only members of that organization will have this privilege.

If using an OpenID-based or SAML-based service, you can only specify the list of NameID values to be granted comment moderator rights.

If using OpenID authentication, you may select more than one OpenID provider for the portal. The portal theme must include a template file at pages/oauth2login.ftl, which will show the available OpenID providers from which the user may choose one. Theme developers may customize the style of this page. A default template is provided in the Titania Default Theme.

To unset all security providers for the portal, click the Delete button.

After making changes, click the Save button.

The default portal theme includes a page that can be used to review the current session's security information, including the authenticated user, their properties, and the results of the dynamic security script, including print() output. This page can be included into any portal theme, though it is generally not linked to from any of the main pages, and primarily exists as a debugging tool. It can be found at the URL /portalUrlPath/pages/userInfo. This page can be used to view the properties and, for SAML 2.0, NameID value for the currently logged-in user, as well as details about the dynamic filter script output, if any.

6.4.1: OIDC Bearer Tokens

Portal requests may be authenticated by means of an OIDC Bearer token.

For portals that use OpenID Connect (OIDC) authentication, portal requests may use Bearer tokens to authenticate. The OIDC provider must support token generation and validation (and optionally, refreshing tokens). The process for configuring OIDC providers for token support will vary with the provider. Consult your OIDC provider administrative documentation for details and requirements. The OIDC client registration must support scopes "openid" and "offline_access", and conform to the OAuth2 "Authorization Code" flow. Titania Delivery only supports OIDC bearer tokens in JWT (JSON Web Token) format.

The OIDC security configuration must be set up in an organization accessible by the portal, and the portal must be configured to use the OIDC security configuration.

The process for using Bearer tokens is:

  1. A third-party application (or web page) authenticates itself with the OIDC provider.
  2. The client application obtains a bearer token from the OIDC provider.
  3. The client makes an HTTP request to a portal URL, and includes the bearer token. The bearer token may be attached to the request in one of these ways:
    • Put the bearer token in the Authorization request header, preceded by the the literal string "Bearer ". (This is the most secure, and preferred, method. See "Authorization Request Header Field" section in the "OAuth 2.0 Bearer Token Usage" RFC for additional details.)
    • In a POST request, add the bearer token as the value of a form url-encoded parameter named "access_token" in the body of the request. (This is less secure, and should be used only when the client application is unable to set request headers. See "Form-Encoded Body Parameter" section in the "OAuth 2.0 Bearer Token Usage" RFC for additional details.)
    • In a GET or POST request, add the bearer token as the value of a URL query parameter named "access_token".
      Note: This is considered a higher security risk than the other methods. By default, Titania Delivery does not support this method. Customers may request Oberon Technologies to enable this method for their site after acknowledging and accepting the security risks. (See "URI Query Parameter" section in the "OAuth 2.0 Bearer Token Usage" RFC for additional details.)
  4. Titania Delivery will validate the token using information from the OIDC provider. If the token is valid, the request will be processed normally. If the token has expired, the portal will attempt to obtain a fresh token, and, if successful, will return a 4xx HTTP response with the new token in the WWW-Authenticate response header. The client application may resubmit the request with the new token, or take other action. If the token cannot be validated, a 4xx HTTP response will be returned to the client.

The following industry standard specifications provide additional details about the processes and entities described here:

6.4.2: Troubleshooting SAML Authentication

Tips for troubleshooting SAML authentication problems.

The Titania Delivery SAML authentication framework is designed to implement the preferred security recommendations available in the SAML protocol. There are a variety of SAML Identity Provider (IdP) applications available. If your SAML IdP supports the recommended security features that TD uses, it will be possible to configure TD to use your SAML IdP.

Note: Each Titania Delivery customer is responsible for configuring their SAML provider with details of the Titania Delivery portal(s) that will use SAML authentication. The user interface techniques and terminology for configuring IdPs will be different for each IdP vendor, but the authentication protocols and messages used by your IdP and Titania Delivery are standardized in accordance with the SAML 2.0 specification.
SAML Tracer

SAML protocol tracers are available as plugins or addons for various browsers. One such tool is SAML Tracer for Mozilla Firefox. Oberon Technologies make no representation or guarantees about the safety or suitability of this tool. Consult your enterprise IT security policies before installing or using any SAML tracer plugin.

A SAML tracer can display the details of the various SAML requests, responses, and redirects that occur during SAML authentication. This can help an experienced SAML administrator identify the possible causes of a SAML authentication problem.

Troubleshooting
  1. Review the configuration of the SAML security profile that is associated to the portal. Be aware that many security profiles with similar settings and names may have been defined on your system.
  2. Check the IdP configuration for the IdP to verify that the settings agree with settings in the SAML security profile, and meet the requirements described in SAML Identity Provider SSO Configuration.
  3. Make sure all X.509 security certificates are up to date on your SAML IdP. Instructions for checking security certificates should be available in your IdP's administration guide.
  4. Do the certificate strings on Titania Delivery's SAML configuration form match the expected data configured (or auto-configured) on your SAML IdP? Some IdP’s can be configured to auto-update if Titania’s “Service Provider Metadata” changes.
  5. Does the IdP’s X.509 certificate string match the SAML configuration on Titania Delivery?

6.5: Secure Portal Session Timeout

System behavior when a secure portal session times out due to inactivity.

By default, all Titania Delivery portal sessions time out after 15 minutes of inactivity. When the portal is unsecured, or the user is browsing anonymously, a new session will automatically be created when the user navigates to a portal page after a timeout. The user will typically not notice any interruption of service.

Contact Oberon Support to request a change to the portal timeout value. Any change will apply to all portals on the site.

When the user is authenticated in a portal session that times out, the behavior may be different, depending on what authentication method is used and how the system is configured.

Note: To reduce the risk of unauthorized portal access, all portal pages should include a "Logout" button, and users should be advised to log out of the portal before leaving the site. Do not rely on session timeouts or closing the browser window.
OpenID Connect authentication

When an OpenID-authenticated portal session expires, the system will automatically reauthenticate a new session.

SAML2 authentication

In the default deployment configuration, when a SAML-authenticated portal session times out, the system will automatically reauthenticate a new session with the SAML IdP.

The default behavior may not be desired in all cases, because it raises the risk of "tailgating" access by unauthorized users. For example, if a secure portal is available on a public computer, and one user fails to log out of the portal, another user with different privileges could subsequently gain access to the portal, even after the session has timed out.

Customers may request Titania Support to change the deployment configuration for their site, to force re-authentication after session timeouts. This change will apply to all SAML-authenticated portals on the site. Users will be challenged for login credentials every time they attempt to navigate to a portal page after the session has timed out.

LDAP authentication

When an LDAP-authenticated portal session expires, the user will be challenged to re-enter credentials when navigating to a new portal page or refreshing the current page.

6.6: Dynamic Content Filtering

In addition to global metadata filters, administrators can implement dynamic filtering based on a user's identity using Javascript.

The script will be given a user variable containing the identity of the authenticated user, if any. If there is no user, it will be null. The script should end with a return statement returning one of the following.

  • A string containing a search query for content access filtering. This query will be included in all content queries during the user's session. The user will only be able to see content that matches the given filter query.
  • false, in which case the user will be prevented from accessing the portal entirely.
  • null or undefined (or no return statement at all), which will result in no additional filtering being applied.
Important: Dynamic filtering does not apply to monolithic views of DITA map content. This means if there are cases where the topics within a DITA map will be visible to some users but not others, you should disable the Monolithic Map feature in your portal theme(s).
Interrogating the User's Properties

The identity provider may provide additional properties associated with the authenticated user. This script can access those properties to make decisions about what content the user can access using the following properties of the user object.

Map properties
The user properties pulled from the authentication service. For SAML-secured and OpenID-secured portals, this will contain whatever attributes were included in the authentication response message sent by the Identity Provider. For LDAP-secured portals, this will contain the properties listed in the LDAP connection configuration. NOTE: This collection allows for multi-valued properties, so values are arrays, not single values. Properties with single values will be lists of size 1.
boolean hasProperty( String name, String value)
Tests whether there exists a property with the given name containing the given value. If the value is not specified, this method tests whether the property exists.

The script also provides the following utility functions.

escape(str)
Escapes reserved characters in the given string so that it can be used inside a search string.
quote(str)
Like escape(), but additionally wraps the text in quotes.
print(str)
A degugging function that prints the given string to the execution log. See below for how to read the log output.

The provided script will be executed at the following times.

  • If the portal supports anonymous access, the script will be run when a user first accesses the portal, with a null value for user.
  • Immediately after a user authenticates with the portal, with the user populated with the username and properties provided by the identity provider.
  • If the portal supports anonymous access, the script will also be run after an authenticated user logs out, again with null for user.
Script Testing

Once the script is entered, it can be tested using the Test Script section of the page, which allows you to construct a user and their properties to run through your filter function.

  1. Specify whether or not an anonymous user will be used.
  2. Specify the username and properties for the dummy user, if desired.
    Note: User properties are multi-valued. The provided interface allows you to add multiple values for properties (smaller buttons), as well as adding and removing additional properties (larger buttons).
  3. Click the Test Script button.

The script will be executed on the server, and the results of the script will be printed below the form, including strings passed to the print() function.

The /pages/userInfo page in the default portal theme can also be used to view the script output for the currently-authenticated user in a live portal.

Chapter 7: Advanced Administration Features

Titania Delivery uses special, built-in organizations to grant access to certain system-level functions.
System Monitors
Members of the System Monitors organization will see a Monitors link in toolbar, allowing them to monitor content processing activity across the system.
Security Administrators
Members of this organization will see a User Management button on the homepage, allowing them to manage the admin application's users.
System Administrators
Members of this organization have the ability to see and modify the built-in default portal themes and document types.

The root user is the owner of all three organizations. (The root user is created by the system administrator who initially sets up a Titania Delivery site.) The ownership of these organizations cannot be changed, because they have a special, protected status to prevent inadvertent deletion or modification. However, other admin users should be granted Administrator role in these organizations, which will allow them to carry out all TD administrative duties (except deleting the organization or changing ownership). Other users may be added in the Member role, which will grant them the privileges that come with membership in each special organization.

7.1: System Monitors

System monitors are able to keep track of how the Titania Delivery system is functioning, including inspection of JVM status and Content Engine workload.
Content Engine Status

The Content Engine Status link in the header of the Administration interface will take users to the Work Queue view.

Work Queue View

This view has three main sections.

  1. The Work Queue chart shows the current size of the work queue, and the activity over the last 5, 10, 30, or 60 minutes.
  2. Below the graph, the overall work queue size is displayed, and the number of each type of event sitting in the queue.
  3. The Content Engine Processors area lists the content processing threads available to the system, and their current activity, if any.
Common Event Types

There are many different types of events that can be added to the work queue. Here are some of the most common.

ITEM_PROCESSING_REQUESTED
When a file is uploaded or reprocessed, this type of event is added to the queue. These appear as orange in the chart.

Note: These types of events are prioritized based on the file extensions being processed. Files ending in .dita are processed first; files with .ditamap are processed last; and all other files happen in between those two.

This is the reason for the shape of the graph seen above. The topics, which process quickly, are processed first, so the graph rapidly drops. Then the ditamaps are processed. Those take longer, and so the chart flattens out.

CONTEXTUALIZATION_CREATED
When the content engine processes a DITA map, it creates contextualized copies of all of the referenced topics. The creation of these copies triggers some downstream processing that is put on the work queue rather than being part of the map processing itself. These appear as light orange-yellow on the chart.
ITEM_CREATED and ITEM_UPDATED
When files are uploaded, ITEM_CREATED (for new files) or ITEM_UPDATED (for existing files) events are placed on the queue. The processing of these events involves preparing the items for their processing, which is subsequently initiated by ITEM_PROCESSING_REQUESTED events.
BATCH_UPDATE
When a project or folder is reprocessed, a single BATCH_UPDATE event is placed on the queue. The processing of this events prepares all of the affected files for processing, then issues ITEM_PROCESSING_REQUESTED events for those files.

7.2: Security Administrators

Security Administrators have the ability to manage the user accounts of the administrative application.

The User Management view lists all the Titania Delivery administrative application users, their e-mail addresses, and the last time they logged into the system.

User Administration View

From this view, users can create new users, delete existing users, and lock or unlock specific accounts. Users can also update a user's password in the event that their password is lost or forgotten.

User Administration View with Actions

The action drop-down is hidden for the root user and for the currently logged-in user. The currently logged-in user can update their password and other settings using the Account button.

Selecting the Delete User action item will display the following dialog.Confirm Delete User

Note: Make sure you know what organizations and projects are owned by the user before deleting the user account. There will be no further notification about which entities will be deleted. If in doubt, click No, then review the user's organizations before deleting the account. If necessary, transfer ownership of organizations to another user.

Clicking the Add User (+) button brings up the Add User dialog, allowing you to specify the new user's details.

Add User Dialog

7.3: System Administrators

Members of the System Administrators organization have access to the built-in portal themes and document types.

When a new Titania Delivery instance is first created, the default document types and portal themes are installed, owned by the root user. The System Administrators organization is added to these assets as an administrator, so its members can manage them.

System Administrators also have a number of additional system monitoring and administration capabilities.

7.3.1: Monitoring the JVM

System Administrators can monitor the state of the Java Virtual Machine being used by the Titania Delivery server.

The JVM Status link displays a dashboard with the server JVM's memory and CPU usage.

JVM Dashboard

This interface is only visible to members of the System Administrators organization.

7.3.2: Java Management Extension (JMX) Interface

The JMX interface allows System Administrators to use a simple Web interface to the various Java Management Extension management beans in the system.
JMX Console

Titania Delivery provides three Management Beans, or MBeans.

ContentEngineInspector
This bean can be used to inspect the current status of the Content Engine, if it is included in the Web tier. (If using a standalone Content Engine, this bean appears on the Content Engine's embedded Web console, and will not have any data here.)
ActiveEvents
The JSON presentation of the events work currently being done.
ActiveNotifications
The notifications being dealt with at the current time.
EventCount
The total number of events handled since the system started up.
EventsByType
A JSON object containing the number of events of each type handled by Content Engine since it started up.
NotificationCount
The total number of notifications handled by the system since it started up.
NotificationsByType
A JSON object containing the number of notifications of each type handled by the system since it started up.
PortalRenderingInspector
Displays information about the active XSLT transformations currently being processed by the system for Portal display. This can be used to track down potential "hanging" XSLT stylesheets that can cause the system to lock up.
ActiveRenders
The currently-running renderings.
RenderCount
The number of XSLT renderings that have been performed since system start-up.
QueueInspector
Displays information about the contents of the work queue.
ClaimedEventsByClaimant
Displays the events claimed by each Content Engine thread.
EventProcessors
The list of IDs of all Content Engine worker threads.
QueueSize
The number of events currently on the work queue.
QueueSizeByType
A JSON object dscribing the number of events of each type currently in the queue.
clearQueue()
This action will clear the contents of the work queue.
Warning: Use this with extreme caution. It effectively cancels all scheduled future processing.

There are additional management bean categories available through this interface. The following are management beans that may be of particular interest to Titania Delivery administrators:

java.lang
Contains management beans for the JVM itself. Of these, the Memory bean has an action called gc() that can be used to cause the JVM to initiate garbage collection.
net.sf.ehcache
This category contains beans that can be used to monitor the status of the various in-memory caches used by Titania Delivery.

7.3.3: Managing robots.txt

Members of the System Administrators organization can manage the contents of the robots.txt file for the Titania Delivery system as a whole. While each portal can specify whether its path is included with an Allow or Disallow rule, System Administrators can manually author the first part of the dynamically-generated robots.txt file.

To edit robots.txt, simply select the robots.txt link in the header.

This link will open the Manage robots.txt page. The top of this page is a simple text editor with save, revert, undo, and redo actions. Users can enter the data for the robots.txt content using this editor.

The bottom part of the screen displays the automatically-generated code based on the various portals' configuration settings.

7.3.4: Default System Configurations

Certain configurations applied to the System Administrators organization will be globally available to all organizations in the Titania Delivery system.
Metadata Field Configuration

The Metadata Field Configuration for the System Administrators organization will automatically be copied to all new Organizations created in the system. Modifications to the field configuration will be used for all new organizations made in the future. This allows administrators to set up the default metadata schema for new groups and organizations in the system without having to copy the configuration to multiple organizations manually. See Metadata Field Configuration for details.

Portal Authentication Systems

The LDAP, SAML 2.0, and OpenID Connect authentication configurations in the System Administrators organization will be available to all portals in all organizations in the system. This reduces the need to copy security configuration information to multiple organizations that share identity providers. See Portal Security Configuration for details.

7.4: Auditing Administrative Actions

Most Titania Delivery objects have a History tab or action that can be used to view the history of modifications to that object. This can be used to audit the history of changes made to Delivery configuration over time.

An object's audit log includes individual entries representing some change to the object in question, including a time stamp, the administrative username of the user who performed the action, and a brief description of the action.

Some audit log entries also carry additional details accessible by clicking the details link. For example, records pertaining to changes to a file's metadata include details of exactly which properties were modified, as well as their old and new values.

In this example, the metadata newKey changed from "newValue" to "modifiedValue."

Chapter 8: Troubleshooting and Issues

8.1: Caching Issues

Content updates should be immediately visible through portals. However, sometimes content is improperly cached, either on the server or in a user's browser.
Browser Caching

While portal pages should not usually be cached by the browser, secondary files - CSS files, graphics, and external javascript files - are delivered to browsers to maximize caching. Thus modifications to these files may not be immediately visible to all users. It is a best practice, when updating such files, to use new file names and update a portal theme's page templates to use those new files, thus requiring all users to bypass local browser caches.

Resetting the Cache on your browser

After a Titania Delivery software upgrade, all end-users should make sure to reset the cache on their web browsers.

To find out how to clear your browser cache, check your browser’s documentation. Instructions on how to clear the cache in most major browser’s can be found here.

Server-side Caching

When XML content is displayed in a portal page, the resulting HTML is cached at the server so that it does not need to be regenerated for subsequent requests. Whenever the content or XSLT is updated, related content should be automatically evicted from server-side caches. However, in certain conditions, it may not always be. Site administrators can force a reloading of such content by passing ignoreCache=true in the URL to pages serving such content in a portal.

?ignoreCache=true

If you make an update to a file, reupload the file to Titania Delivery , but then don't see your changes in a Portal...

Click in the Address Bar of your web browser and look at the end of the web address.

  1. If the address ends in .../topics/filename.dita, then add ?ignoreCache=true to the address and press Enter
  2. If the address ends in .../topics/filename.dita?refId=topicref-37, then add &ignoreCache=true to the address and press Enter

This will reload the webpage, resetting the cache on that particular page.

8.2: DITA Support Limitations

Titania Delivery's DITA support is constantly evolving. As of this writing, however, it has the following limitations.
DITA 1.2 Support Limitations
  • The @conaction attribute is not supported.
  • Subject scheme and classification maps are not supported.
  • Support for the @chunk attribute is limited to the to-content token.
    Note: When multiple topics are combined into a single chunk, all metadata from the chunked topics is copied to the synthesized, compound chunk container topic. This means, for example, that the contextualized copy of the chunking wrapper will contain multiple values for the filepath attribute, one for each source topic included in the contextualized, compound chunked topic.
DITA 1.3 Support

The following features in DITA 1.3 are supported by Titania Delivery:

  • Key scopes.
  • The DITAVAL reference domain and branch filtering.
  • The markup and XML mention domains are styled by the base stylesheets.
  • Same-topic reference syntax (#./elementId).

8.3: System Monitoring

Titania Delivery provides Web-based interfaces for viewing system memory and CPU usage, as well as interrogating the status of various systems.

Members of the System Administrators or System Monitors organization have access to interfaces for monitoring various systems involved with Titania Delivery.

Content Engine Status
The Content Engine Status page displays he processing threads in use by the Content Engine(s), the work they are currently doing, the size of the work queue, and a historical line chart displaying the size and composition of the queue over time. This page is available to members of either the System Monitors or the System Administrators organizations.
JVM Status
This page displays the CPU and Memory usage of the JVM hosting the Tomcat web application. Note that in clustered environments with multiple web servers, this page will only display one server's status. This page is only avalable to members of the System Administrators organization.
JMX
This page provides a simple Web-based interface to the Java Management Extension beans, or MBeans. These are sets of properties and actions organized into various domains. Titania Delivery provides a category of beans for monitoring the Content Engine processing queue and a number of other aspects. This page is only available to members of the System Administrators organization.

8.4: Submitting Feature Requests

We're always looking for input and feedback to help make Titania Delivery better.

Please use your customer online portal to suggest feature requests. If you require additional information, please use the customer online portal to contact us with questions.

8.5: Browser Support

Titania Delivery supports most major browsers. Portals can be made to support virtually any browser by modifying portal themes.
Administrative UI

The Titania Delivery administration application is supported on the following browsers:

  • Google Chrome
  • Mozilla Firefox
  • Microsoft Edge
  • Microsoft Internet Explorer 11
  • Apple Safari

Titania Delivery supports the two most recent versions of these browsers.

Portals

In general, most of the portal applications provided by Titania target the same browser support as the administrative application. However, since the code behind portals can be fully configured, a Portal Theme can be developed to target virtually any user agent/web browser offering.

Appendix A: Release History

A.1 Version 4.5.14

March 27, 2025
Issue Resolution
  • Remove a limit on the number of DITA profiling rules that can be processed for one map.

Improvements
  • Support OIDC Bearer token portal authentication.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.2 Version 4.5.13

February 20, 2025
Issue Resolution
  • Improve DITA conref processing to avoid intermittent errors while resolving target element.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.3 Version 4.5.12

December 19, 2024
Issue Resolution
  • Resolve issue that caused premature locking of admin accounts due to failed login attempts.

  • Hide Multi-Factor Authentication (MFA) options in admin Account Help dialog when MFA is not enabled.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.4 Version 4.5.11

November 21, 2024
Issue Resolution
  • Improve audit logging of changes to SAML and OIDC authentication configurations.

  • Allow OIDC custom scopes to be configured in the OIDC Provider configuration. These will be added to the authorization request to ensure custom scope processing by OIDC providers.

  • Re-enable SAML IdP-initiated portal login when the portal request doesn't have an active session. A regression in TD 4.5.10 disabled this feature in certain cases.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.5 Version 4.5.10

September 19, 2024
Issue Resolution
  • Admin app login ids are not case-sensitive. A change in 4.5.9 inadvertently required login ids to be entered in lower-case. This limitation has been removed.

  • After logging into the admin app after a session timeout, the user's home page is displayed instead of a JSON display of user info.

  • An intermittent problem with secure portal login redirect locations having http protocol instead of https has been resolved.

Improvements
  • Portal searches now add search engine score (or weight) as a sort key (descending order) after any custom sort keys. Previously, if custom sort keys were specified, search engine score was not considered when sorting results. Search requests that do not include custom sort keys are ordered by descending score.

  • The portal search interfaces now allow specifying multiple sort orders corresponding to multiple custom sort keys.

  • When logging into a portal that has only one OIDC authentication provider, the provider chooser dialog is skipped, and the user is redirected to the portal's OIDC authentication page.

  • Resolved an incompatibility with Azure B2C OIDC provider implementation, to allow Titania Delivery portal users to authenticate with Azure B2C providers.

  • Internal improvements handling authenticated portal session timeouts, for reliability and security.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.6 Version 4.5.9

June 20, 2024
Issue Resolution
  • An extra newline after DITA conref replaced content has been suppressed. This was occasionally causing unwanted whitespace to appear in HTML rendition of processed DITA topics. This processing defect was introduced in TD 4.5.3 but is now resolved.

  • DITA submaps are now processed with any doctype preprocessing XSL templates that have been specified for the document type. Previously, <mapref> elements in DITA maps were resolved without benefit of custom preprocessing, which could cause errors in cases where preprocessing changes were significant for downstream processing.

  • Analytics query performance has been improved to avoid memory stress and data deficiencies, and improve system stability. As part of this change, analytics queries are limited to a 3-year date range.

Improvements
  • The TD admin application has been upgraded to comply with stricter Content Security Policy (CSP) directives. See Content-Security-Policy and Administration Application for additional information.

  • Added a documentation topic, "Content-Security-Policy and Portal Pages" in the Titania Delivery Developer's Guide to provide information on implementing strict Content Security Policy (CSP) for TD portal pages. Contact Oberon Support to discuss your TD portal CSP requirements or to engage Oberon professional services to modify a portal theme for strict CSP.

  • Multi-Factor Authentication (MFA) for administrative login has been added as an optional feature that can be enabled when requested. Contact Oberon Support to enable or disable MFA on your site. See Admin Application Login for more information.

  • The default portal page session timeout value of 15 minutes can now be configured per site. TD administrators should contact Oberon Support to request a change to the value. The new value will affect all portals on the site. Note that longer timeout values may increase security vulnerability. Administrators should check with their corporate security officer to verify compliance before requesting any change.

  • The default admin application session timeout value of 15 minutes can now be configured per site. TD administrators should contact Oberon Support to request a change to the value. Note that longer timeout values may increase security vulnerability. Administrators should check with their corporate security officer to verify compliance before requesting any change.

  • Internal upgrades to improve reliability of portal login session lifecycle.

  • Added missing documentation for setContentFilter custom tag. See <@td.setContentFilter>.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.7 Version 4.5.8

February 16, 2024
Issue Resolution
  • The Organization Analytics admin page now handles large organizations better. Users will be alerted when the analytics visualization query exceeds the built-in search limit. When downloading analytics data for large organizations, the size of the file will be limited. See the Organization Analytics topic in the Administrator's Guide.

  • When requesting password reset for administrative account, the requested account email address will not be displayed.

  • Return document properties along with search metadata in search results.

Improvements
  • When users are authenticated on a portal using OpenID Connect, additional user properties supplied by the OIDC provider will be available in the user properties.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.8 Version 4.5.7

November 16, 2023
Issue Resolution
  • Administrator account email notifications for password resets are working.

  • Use correct charset on body content when generating an HTTP request using the <@td.httpRequest> custom tag.

  • Reduce the resource impact of metadata name and value autocomplete suggestion queries in the portal content filter dialog. This change limits the scope of the search to projects associated to the portal, and limiting the number of suggestions that will be returned.

  • Mitigate admin application security vulnerability by expiring all of the user's sessions when the account password is changed in one session.

Improvements
  • Added totalHits property to SearchResultsPage object.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to the Developers Guide topic, "Managing Static Files for a Portal".

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.9 Version 4.5.6

September 21, 2023
Issue Resolution
  • Retain portal page query parameters after SAML session timeout and automatic re-authentication. This will minimize disruption when a session timeout occurs while viewing a page that was invoked with URL query parameters.

  • Suppress useless validation errors from content processing when schema validation is not needed. These errors showed up in the content item validation report like [ERROR] (filename.xml) cvc-elt.1.a: Cannot find the declaration of element 'map'..

Changes
  • The total number of custom site data indices is limited to 100, to prevent search system instability due to too many indices. Portal theme developers who use the indexed site data feature should ensure that the total number of user-created data indices on the platform does not exceed 100.

  • By default, Java stack traces are suppressed from freemarker error reports and portal error pages. If allowed by company security policy, administrators can enable display of stack traces on a portal by setting the portal feature Display FreeMarker Stack Traces. (See Portal Features.)

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.10 Version 4.5.5

July 20, 2023
Issue Resolution
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.11 Version 4.5.4

May 11, 2023
Issue Resolution
  • Prevent openid-configuration fetch from stopping server startup. In some cases, attempting to resolve the OAuth2 OIDC issuer URL could stop the webapp initialization process. The admin app OpenID Configuration form now will prevent storing unresolvable issuer URLs. (see Configuring OpenID Security Profiles).

  • Prevent the <@td.content> custom freemarker directive from throwing an error when used with a @searchTerm query that returns a virtual document.

  • Ensure dynamic content filters work properly after an authenticated session times out and is renewed.

Improvements
  • Added special metadata field to control PDF text extraction, to suppress unwanted duplicate text. See .
  • Internal platform improvements for stability of SAML and OpenID authentication frameworks.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.12 Version 4.5.3

February 24, 2023
Issue Resolution
  • Eliminate a nuisance error caused by session timout, which can appear occasionally to users while browsing a portal.

  • Correct the behavior of @modifiedSince and @modifiedBefore attributes on the <td.search> and <td.groupSearch> freemarker extension elements.

  • Use the preprocessed rendition of DITA map (instead of the original) for conditional processing, to ensure that changes made during preprocessing are available for conditional processing.

Improvements
  • Allow non-metadata URL parameters on /viewer portal page requests. Previously, non-metadata URL parameter names would result in empty search results or an error. See Embeddable Content Viewer Pages for more information.
Changes

After logging out of a SAML-authenticated portal, the browser will display a logout page with a link to the portal homepage, instead of returning to the portal login page.

Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.13 Version 4.5.2

January 19, 2023
Issue Resolution
  • Eliminate a nuisance error page indicating "500 Error", which appeared occasionally to users while browsing a portal.

  • Fix a regression in the TD admin application, to restore the ability for administrators to disassociate an authentication system from a portal. This feature was inadvertently omitted in TD 4.5.1.

  • Eliminate run-time error caused by using only one of @createdSince/@createdBefore or @modifiedSince/@modifiedBefore attributes on the <td.search> or <td.groupSearch> freemarker extension elements.

Improvements
  • Add option to "Delete Search Index and Reprocess All Files" on the TD admin app project upload page. This allows administrators to delete the project search index when uploading content to the root of a project. The option is not available when uploading below the project root.
Changes
  • Minor changes to infrastructure settings and configuration for improved performance and reliability in all usage scenarios.

Limitations
  • If an HTTP session expires while displaying a SAML or OpenID login page as opposed to a Titania Delivery portal page, the user cannot reliably return to the original portal page and Titania Delivery will report an “401 Unauthorized” error after authentication. The user must navigate to the desired portal page URL and re-authenticate to resume.
  • Titania Delivery OpenID portal authentication may not work with Symantec SiteMinder v 12.8 OpenID providers. See Configuring OpenID Security Profiles.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.14 Version 4.5.1

November 10, 2022
Improvements
  • Added a deployment option to force re-authentication on secure portals after a session timeout. This option affects SAML-authenticated portals only. It can reduce opportunities for unauthorized access to secure portals, but will eliminate a primary benefit of single-sign-on by forcing users to re-enter credentials more frequently. See Secure Portal Session Timeout for details.

Changes
  • The SAML authentication process in Titania Delivery has been improved for greater security. Sites that use SAML authentication may need to modify their IdP (Identity Provider) configuration to work with TD's enhanced security provisions. In particular, it is recommended that all SAML documents/messages and assertions be signed by the IdP. Consult your IdP documentation for instructions on how to do this. Note also that some IdPs may require the relying party (TD) to sign authorization requests. In this case, make sure to check the "Sign Authorization Requests" box when setting up the IdP configuration in Titania Delivery.

Limitations
  • If an HTTP session expires while displaying a SAML or OpenID login page as opposed to a Titania Delivery portal page, the user cannot reliably return to the original portal page and Titania Delivery will report an “401 Unauthorized” error after authentication. The user must navigate to the desired portal page URL and re-authenticate to resume.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.15 Version 4.5.0

August 18, 2022
Improvements
  • Titania Delivery now supports OpenID Connect for portal authentication. See the Configuring OpenID Security Profiles topic for details.
  • The current Titania Default Theme is available as a zip archive at /resources/td-default-theme.zip on any TD host. This can be used to update the system "Titania Default Theme" that was installed when the system was originally deployed. Or it can be used as a resource to copy selected features into custom themes.
Changes
Limitations
  • When an authenticated portal session times out due to inactivity, the system may not log out of the authentication provider. Depending on the timeout settings of the authentication provider, a user may be able to continue browsing in the portal without reauthenticating. Users should be advised to always logout when finished using an authenticated portal.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.16 Version 4.4.3

June 23, 2022
Improvements
Issue Resolution
  • Improve web application stability for certain types of search exceptions.
  • Allow IdP-initiated SAML login. (This was a regression introduced in 4.4.2.) See also the special considerations for creating SAML IdP Configurations when using IdP-initated SSO in Configuring SAML Security Profiles
  • Persist doctype properties during item reprocessing to eliminate occasional processing errors due to missing properties.
  • Correct map processing for chunked reused DITA topics.
  • DITA <navtitle> elements containing Arbortext processing instructions are now processed correctly in all contexts.
  • Preserve fragment identifiers on DITA links to nested topics and subelements. (This was a regression introduced in 4.2.)
  • Built-in XSLT templates for generating DITA bookmap division numbers have been corrected to omit extra segment.
  • Correct documentation for modifiable lists and maps.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.17 Version 4.4.2

January 5, 2022
Improvements
  • The admin app project view now includes a "Validation Summary" tab at the project and folder levels, which displays a list of the content items within the project (or folder) that have validation records against them.
  • The “SAML IdP Configuration” window now includes a “Single Log Out Endpoint URL” text field.
Issue Resolution
  • Upgrade log4j library to version 2.17.1, to address vulnerability issues CVE-2021-44228 and CVE-2021-45046
  • Deleting a top-level folder in the admin project view will not delete subfolders with the same name.
  • SAML Service Provider (SP) metadata export includes SingleLogoutService endpoint.
  • Nested DITA <title> content is indexed for searching (as body text).
  • Multiple SAML IdP configurations can be stored with the same EntityId without causing portal login failures.
  • Logging back in after the admin application session times out will return to the default admin app view.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.18 Version 4.4.1

September 27, 2021
Issue Resolution
  • Avoid content processing failure due to long file path.
  • Avoid metadata value indexing problem due to long metadata value.
  • In admin organization views, suppress delete button when user doesn't have delete privilege.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.19 Version 4.4

August 16, 2021
Improvements

Most of the changes in this release were to upgrade backend services and improve application stability.

  • Content engine performance and stability has been improved. This will provide faster and more reliable content processing.
  • Upgraded elasticsearch version and libraries to 6.8.
  • Zip archives uploaded to a project will be read using CP437 character set, which recognizes a greater range of filename characters. This will avoid upload failures due to foreign characters in filenames.
  • Project administrators now have the option to delete all project search records when reprocessing an entire project.
  • The admin app will automatically logout after 15 minutes of idle time (no user activity in the admin browser window). A warning will be displayed 1 minute before logout to allow user to continue the session if desired.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.20 Version 4.3.3

July 16, 2021
Issue Resolution
  • Populate the metadata and metadataNormalized properties of the SearchResultDocument template object, to correct an issue introduced in version 4.3.2 that returned null values for these properties.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.21 Version 4.3.2

May 10, 2021
Issue Resolution
  • Update the Titania Delivery deployment infrastructure that ensures Encapsulated PostScript (EPS) files are properly converted for preview and web display.
  • Ensure page requests that do not include User-Agent header are recorded properly for analytics.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.22 Version 4.3.1

April 29, 2021
Documentation Improvements
  • Add information for configuring SAML Identity Provider (IdP) Single Logout (SLO).
Issue Resolution
  • Fix admin preview display of XML project items.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.23 Version 4.3

April 26, 2021
Improvements
  • Improve reliability of SAML logout.
  • Upgrade MongoDB java driver to provide forward compatibility with recent MongoDB versions.
  • The default {portalUrlPath}/search URL accepts sortBy and sortDirection query parameters.
  • DITA profiling (conditional processing) works for inherited attributes in a topic.
Issue Resolution
  • Clearing or removing items from "favorites" list now works as expected.
  • The td.httpRequest custom tag now handles a response that does not include a Content-Type header by falling back to application/octet-stream.
  • Modern Microsoft Edge™ browsers are correctly recorded as "Edge" browsers instead of "Chrome" for analytics reporting.
  • When children items are deleted from a project, their former parent items are marked with Children Modified: true on the item Details panel in the admin project view.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

  • The default (built-in) portal login page will be removed at the next major release. This page is automatically supplied by the platform if the portal theme did not include a pages/login.ftl template. All themes provided by Oberon Technologies for the last several years have included this file. But it is possible that very old themes do not include pages/login.ftl. To avoid problems when upgrading to the next major release, Titania administrators should verify that their portal themes include this file (if using portal authentication). Refer to the Titania Delivery Developer's Guide for additional information.

A.24 Version 4.2.5

January 8, 2021
Improvements
  • Generate search index records for affected project items when associated metadata is loaded.
  • Improve reliability when deleting search index records for deleted project items.
  • Ensure that reprocessing all files in a project will remove all associated search index records prior to reprocessing (and regenerating search index).
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

A.25 Version 4.2.4

November 12, 2020
Improvements
  • Improve offline packager search indexing to include full text content of documents.
  • Modify configuration of standalone content engine server to improve connectivity to database servers.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

A.26 Version 4.2.3

October 22, 2020
Improvements
  • Prevent portal page from returning error page when attempting to get file properties of nonexistent file.
  • Correct behavior for updating item metadata when importing content items with external metadata.
  • Ensure that main content search index is always initialized with correct mappings.
Deprecated Features

These platform features are deprecated and will be removed at the next major release.

  • /resources/scripts/libs javascript files.

    The Titania Delivery platform includes the following javascript files that are available to themes using a url like [td-host]/resources/scripts/libs/[filename]. The preferred way to include front-end javascript resources is to put them in the static/scripts theme directory. Refer to Managing Static Files for a Portal

    • bootstrap.js (version 3.0.3)
    • bootstrap.min.js (version 3.0.3)
    • jquery-1.11.0.js
    • jquery-1.11.0.min.js
    • moment.min.js (version 2.9.0)

A.27 Version 4.2.2

October 1, 2020
Improvements
  • Ability to load and download very large files (larger than 2.5Gb) to projects, with smaller memory footprint.
  • When downloading very large files (larger than 2.5Gb), set Content-Length header correctly.
  • Eliminate security vulnerability that could allow attacker to redirect page to another site after logging off of a Titania portal.
  • Update jQuery version to 3.5.1 in admin app.

A.28 Version 4.2.1

April 1, 2020
Added Functionality
  • The portal theme SDK provides the ability to create and manage mutable lists and hashes.
  • Offline packagers can render the flattened monolithic version of a DITA map or burst non-DITA XML document.
  • Custom pages' file names are used to determine the correct HTTP Content-Type for the page.
  • Added the ability to customize the Titania Delivery root site favicon.
Improvements

The following issues were resolved in this release:

  • Offline packager performance is significantly improved.
  • Portal requests to custom pages that do not exist now display the portal's 404 error page instead of a blank screen.
  • Viewing topics in large DITA maps now perform as expected.
  • Selecting documents to include in offline packages via search engine now includes all of the resulting matches.
  • Metadata updates to large DITA maps now propagate to the search engine.
  • XML content containing elements and attributes whose namespace URIs are specified implicitly via DTD default attributes will now process correctly.
  • In the Portal Theme SDK, the XSLT and Freemarker viewerUrl() custom function now resolves to the correct URL for the portal.
  • In the Portal Theme SDK, XSLT transformations specifying "text" as the output mode no longer fail to produce output.
  • Portal theme config forms from config.xml now generate successfully.
  • Seeding an offline package with a search gives you all of the documents.
  • Project-level metadata appears on the basic metadata tab for files.
  • Offline packager log files, when included in a zip with signatures receive successful signatures.
  • Multi-layer TIFFs convert successfully.
  • You can sort projects, orgs, portals in the Administrator's view.
  • You can group by values other than context in search results.
  • You can transfer organization ownership in the Administrator's view.
  • You can select all/select none in the organization level analytics.
  • Indexed data API query results are paginated.
  • Fragment metadata is included in data exports.
  • video/* is an acceptable media type.
  • Search and filter to locations within documents now functions as designed.

A.29 Version 4.2

August 6, 2019
Improvements

The following new features and improvements were added in this release.

  • Administrators now have much more control over the URLs used to address content in a portal.
  • Portal theme developers now have the ability to store arbitrary data in a format that can be easily searched and queried, in addition to the simple key-value stores.
  • Portal theme developers now have the ability to generate and store documents in a dedicated Project.
  • Administrators can now view and manage persistent data generated by portals. Previously, it was only available as part of analytics exports.
  • Very large files will not be shown in the Administrative preview view by default, to prevent the Administrative interface from hanging while the content is loaded. Instead, a warning about the file's size is shown, allowing the user to then opt to view the file.
  • The Portal Theme SDK now includes directives for making HTTP requests to external systems.
  • The mechanics of pageview analytics are improved such that content served from caches will still be counted.
  • The offline package feature now has the ability to generate checksums for generated packages.
  • The offline package feature now has the ability to digitally sign packages and package contents.
  • Administrators can now mark Organizations, Projects, Portal Themes, Document Types, and Portals as "Favorites". Such objects will appear at the top of their respective lists.
  • Lists of portals now include the portal URL in the list, simplifying the navigation to that portal's landing page from the administrative interface.
  • Portal search pages and API directives now allow the specification of arbitrary metadata fields as search facets.
  • Portal search pages and API directives now allow the specification of arbitrary filters for limiting the available results for a given search.
  • The Portal search page can now be instructed to escape reserved search engine characters in search queries.
  • The Portal Theme infrastructure now includes a number of new features to aid in the debugging of Freemarker templates.
  • Effective DITA keys are now captured as metadata on contextualized DITA topics.
  • Portal theme parameter configurations can now specify a "password" parameter type, which will be hidden/masked during entry.
  • On hosted installations, security-related HTTP headers are now enabled by default.
  • The tdsync utility now has the option to skip HTTPS certificate verification.
  • The tdsync utility now supports updating metadata when it changes, even if the content itself has not changed.
  • Some errors appearing in the Validation Report have been updated to provide more contextual detail.
Resolved Issues

The following issues were resolved in this release.

  • Various issues related to XInclude handling have been resolved.
  • An issue related to DITA content reference ranges being resolved with incorrect @class attributes has been addressed.
  • The Portal Javascript library now works correctly in older versions of Internet Explorer.
  • XML files with very long names now process correctly.
  • DITA map structures that include relationship tables deep in their hierarchy now process correctly.
  • DITA maps that start with a relationship table now process correctly.
  • XML documents encoded as UTF-8 with a Byte Order Mark now process correctly in all cases.
  • Misspellings and errors in the header row of exported CSV analytics reports have been corrected.
  • The tdsync utility no longer fails when working with some front-end load balancers.
  • The tdsync utility now includes the Content-Length header when uploading content, enabling it to work with more server-side configurations.

A.30 Version 4.1b

April 26, 2019
Resolved Issues

The following issues were resolved in this release.

  • XML Catalog files with <!DOCTYPE headers no longer require the ability to download the catalog in order for the catalog file to be used. This was a problem in environments where the Titania Delivery server was denied outbound network access.

A.31 Version 4.1a

February 5, 2019
Resolved Issues

The following issues were resolved in this release.

  • IDREF links in non-DITA XML documents now function as expected.
  • Chunked Non-DITA XML components now function correctly with metadata-based view URLs.
  • CGM graphics uploaded from Windows clients now convert for web in more cases.
  • Validation errors related to missing DTD components are now reported with more detail.
  • SAML authentication error handling is improved.
  • XInclude references from files containing non-ASCII characters now resolve correctly.
  • Certain documents containing partial Arbortext change tracking markup process more successfully.
  • Default HTTP server configurations now follow security best-practices to the extent possible.

A.32 Version 4.1

September 7, 2018
New Features and Improvements

The following new features and improvements were added in this release.

  • Added APIs for portal theme developers to define rules for offline packagers, enabling the ability to package some or all of a portal's content for offline use.
  • Titania Delivery Portal themes have been modified to ensure they follow accessibility best practices.
  • Portal themes now support the SASS stylesheet language as well as LESS and regular CSS.
  • Titania Delivery can interpret the content type of files by analyzing their contents when the file extension is not recognized.
  • The Validation Report view in the Administrative interface now shows more messages by default, and includes a 'Show All' option.
  • Default table of contents numbering in complex DITA Bookmaps is improved.
  • PTC Arbortext fragment doctype headers are now supported.
  • Portal themes now include a tab listing the portals that use that theme.
  • IP addresses are now hashed in analytics reports to better conform with various municipal privacy requirements.
Resolved Issues

The following issues were resolved in this release.

  • Graphic references in non-DITA XML documents now function as expected.
  • XML File Entity processing is much improved.
  • Metadata properties of non-XML documents are now indexed in the search engine correctly.
  • Cross-references between topics in different DITA maps now resolve correctly in portals.
  • Text files are no longer interpreted as Markdown files, and can be viewed as-is in portals.
  • Changing a portal's display name now works as expected in Internet Explorer.
  • File deletions are now captured in a project's history.
  • File changes using the embedded text editor for Portal Themes and Document Types are now recorded in the file's history.

A.33 Version 4.0b

May 10, 2018
Resolved Issues

The following issues were resolved in this release.

  • URL parameters are now preserved after SAML authentication.

A.34 Version 4.0a

April 9, 2018
Resolved Issues

The following issues were resolved in this release.

  • Fixed an issue where graphic references in non-DITA XML documents sometimes failed to load.
  • Fixed an issue where embedded metadata in PDF and Microsoft Office documents was sometimes extracted incorrectly.
  • Fixed an issue where cross-references from one DITA topic to a DITA topic in another publication failed to resolve.
  • Fixed an issue where only the first ten validation errors were shown in a document's validation report.

A.35 Version 4.0

March 16, 2018
New Features and Improvements

The following new features and improvements were added in this release.

  • Significantly improved analytics and reporting capabilities for portals, projects, and files.
  • Allow for dynamic, identity-based filtering of portal content, such that different users can be served different subsets of the portal's content set.
  • Added tools for monitoring the system internals of the web application, including a JVM resource usage dashboard and JMX interface.
  • Support for converting most CGM graphics to PNG for web-based delivery.
  • Add the ability for portal and system administrators to manage the contents of the Titania Delivery system's robots.txt file.
  • Added the ability to filter long lists of organizations or projects in the administrative view.
  • Modifications to assets using the administrative interface are now captured and logged for auditing.
  • Certain alert messages in the admin interface are now non-blocking notification pop-ups.
  • A file's Processing tab now displays the last-processed date.
  • The UI for adding and removing projects to/from portals has been redesigned.
  • A project's document type associations can now be easily reordered.
  • Migrated to Elasticsearch for the back-end search engine.
  • Significant improvements throughout the administrative User Interface.
  • Performance improvements throughout the system.
Resolved Issues

The following issues were resolved in this release.

  • An issue where only one contextualized copy of a topic was indexed in the search engine per map has been resolved; now every reference will be indexed, even if there are more than one in the same map.
  • Downloading a file with its comments embedded now downloads only the comments left on the current version of the file, not previous versions. Comments on previous versions are still available in the CSV export.
  • An issue related to adding users with upper-case letters in their usernames/e-mail addresses has been resolved. All e-mail addresses are converted to lower case when they are stored.
  • An issue where the <td.groupSearch> tag would not return more than 10 results has been resolved.
  • An issue related to cached portal content not being re-built when the underlying file is modified has been resolved.
  • An issue related to EPS graphics not being properly processed when uploaded to a new project has been resolved.
  • A potential infinite loop in the default portal theme's translation handling XSLT module has been resolved.
  • Metadata value ordering is now preserved when metadata is set using the client connector SDK.
  • An issue related to an &id URL parameter being passed to certain portal pages causing unexpected behavior has been resolved.
  • Analytics charts aggregating large data sets no longer cause system-wide performance issues.
  • An issue where nested <topicref> elements with @chunk attributes not processing correctly has been resolved.
  • The Edit Metadata window position has been moved higher to lessen the likelihood of the bottom of the dialog appearing off-screen.

A.36 Version 3.1b

November 22, 2017
New Features

The following new features and improvements were added in this release.

  • The Rich Text Editor for comments has been significantly overhauled to provide additional formatting options and a new UI.
Resolved Issues

The following issues were resolved in this release.

  • Various issues related to comment viewing in the Admin User Interface have been addressed.

A.37 Version 3.1a

August 1, 2017
New Features

The following new features and improvements were added in this release.

  • Support for uploading metadata in CSV format when uploading a zip archive to a project.
Resolved Issues

The following issues were resolved in this release.

  • The tdsync.bat and tdscript.bat files now function as expected on Windows systems.
  • Metadata value ordering is preserved.

A.38 Version 3.1

March 30, 2017
New Features

The following new features and improvements were added in this release.

  • Configurable support for non-DITA XML document types is now available.
  • Support for DocBook 5.0 has been added to the default document type collection.
  • Support for linking to DITAVAL files to apply filtering to some or all of a map, using either the DITA 1.3 <ditavalref> element or using <data name="ditavalref" href="file.ditaval"/> within <topicmeta>.
  • A Portal theme API for storing persistent data in the database is available. In the default theme, this enables new features like remembering recently viewed documents, recent searches, and user-specific favorites/bookmarks. (for secured portals). Additionally, the API, enables portal themes to accommodate advanced custom functionality.
  • XSLT hooks for pre-processing XML content before the DITA processing occurs.
  • The client connector/sync infrastructure is streamlined.
  • File based names are captured as metadata.
Resolved Issues

The following issues were resolved in this release.

  • If a file has a numerical title, it now appears portals.
  • Documents with titles that contain non-Latin characters appear in search results.
  • Using blank URIs in the XSLT document() function now appears correctly.
  • Downloading content with embedded comments, no longer produces invalid markup.
  • Embedded comments are now placed in expected locations.
  • Default styling for uicontrol, wintitle, and userinput is now bold.
  • Image conrefs function as expected.
  • The quick-hit reports in the portal UI are limited to the last 30 days
  • Titles and metadata values do not include nested indexterms.
  • Heading nodes in assemblies appear as expected.
  • The Document Types section of the admin guide indicates that it is DITA 1.3.
  • Default portal theme homepage sections function as expected.
  • TD client connector metadata loader specifies non-cascading metadata
  • Reltable processing includes @collection-type in relcells
  • Username and password authentication support for MongoDB functions as expected.
  • Setting @format to a non-DITA value on a map causes title-only topicrefs to get pseudotopics
  • Invalid tables that use percent signs for column widths are appear as expected.
  • If the path to _td.ditaval contains a space and it is accessed via relative path, it now functions as expected.
  • EOT fonts are sent to the browser with the correct MIME type.
  • Portal caches are no longer reset when the portal details are viewed in the admin web application.
  • XIncluded content is being validated and receives default (@class) attributes with schema-based content.
  • XIncludes are resolved in contextualized copies of topics
  • Right-to-left languages like Hebrew and Arabic now function as expected.
  • Portals created for new users from the User Management UI function as expected when logging in.
  • Folder-level reprocessing functions as expected.
  • The tdsync tool deletes/downloads missing files if there are no files to modify.
  • Markdown text is properly rendered in new portals.
  • When you create a new portal without any content, the 'Available Publications' section is available.
  • If XML content without a title is present in the viewer or homepage, the page functions as expected.
  • Assembly rendering headings as expected.

A.39 Version 3.0c

December 13, 2016
Resolved Issues

The following issues were resolved in this release.

  • TD client connector metadata loader can now create non-cascading metadata.
  • Reltable processing now honors @collection-type in relcells.
  • Setting @format to a non-DITA value on a map no longer affects the behavior of title-only topicrefs.

A.40 Version 3.0b

October 21, 2016
Resolved Issues

The following issues were resolved in this release.

  • Files with purely numerical titles or titles containing only characters from certain Unicode ranges will now appear in search results.

A.41 Version 3.0a

September 8, 2016
Resolved Issues

The following issues were resolved in this release.

  • Portal theme parameter forms now render correctly in single-server deployments.

A.42 Version 3.0

September 7, 2016
New Features

The following new features and improvements were added in this release.

  • Support for SAML 2.0 Single Sign-On
  • Elements of the visual design of the administrative UI has been updated.
  • The security model for the admin web application has been augmented to support locking user accounts and new user account creation management, instead of/in addition to self-sign-up.
  • Administrative accounts are locked after 5 failed login attempts.
  • Members of an Organization now have contributor-level access to Projects owned by that Organization by default, and no longer need to be added to projects separately.
  • The default portal theme has been significantly overhauled and improved with new features and functionality.
  • Portal themes can now be parameterized, so that the same portal theme can be configured differently for different portals.
  • The administrative user interface has been reorganized to emphasise Organizations as the primary navigational starting point.
  • Comments are now entered using a WISYWYG text editor.
  • Administrators and comment moderators can now set a disposition on comments.
  • New Comments tab in the administrative UI for viewing the comments on content.
  • Administrators can now download DITA content with portal comments embedded in <draft-comment> tags.
  • Within portals, DITA links to target topics outside the current map context will now resolve to one of the available contexts for the target topic, if any.
  • The built-in DITA doctypes have been upgraded to DITA 1.3.
  • Support for new DITA 1.3 dot-notation for same-topic references.
  • Support DITA 1.3 <line-through>.
  • Blank, title-only topics are now generated for topicrefs with a title but no href.
  • The DITA <coderef> element is now supported.
  • The DITA <imagemap> element is now supported.
  • Subject Scheme Maps now have a legible preview.
  • Default BookMap numbering logic has been overhauled to better handle different combinations of structural elements.
  • The portal theme code editor will now fill the available window space.
  • The file system connector now supports two-way synchronization.
  • The file system connector now supports setting of metadata during sync.
Resolved Issues

The following issues were resolved in this release.

  • The Change Contact Details dialog now functions as expected.
  • Link resolution performance has been improved.
  • The obsolete "Reviewer" role for project membership has been removed.
  • DITA Glossary topics now preview as expected.
  • Project members with "Viewer" privileges can no longer modify properties of non-XML files.
  • Drag-and-drop upload now functions correctly on Microsoft Edge.
  • Files with names beginning with a period now render correctly when used in an assembly.
  • The output from XSLT transformations with different parameters but the same stylesheet are now cached independently.
  • The Recaptcha integration now functions correctly.
  • Reltable titles are no longer mistaken for the containing map's title.
  • Key references now preserve their original XML IDs after keyref resolution.
  • The document() function now resolves resolved references in XML being served to a portal.
  • Deleting an organization no longer displays an error.
  • DITA Topicrefs beneath resource-only topicrefs no longer appear in processed output.
  • The presence of periods in embedded property names in PDF and Office documents no longer causes processing of those files to fail.

A.43 Version 2.2

April 15, 2016
New Features

The following new features and improvements were added in this release.

  • Embedded properties in PDF and Mcirosoft Office documents can be mapped to metadata entries.
  • New portal theme API enabling the creation of monolothic publications from maps and custom assemblies.
  • Support for DITAVAL filtering is available.
  • Support for the DITA conrefend attribute.
  • The “Details” tab now displays created/last modified dates.
  • Recapcha is now optional for the New User form.
  • The creation of map metadata that does not cascade to contextualized topics is now available.
Resolved Issues

The following issues were resolved in this release.

  • Users are able Javascript files in the portal theme editor.
  • Javascript files marked with certain MIME types are available for preview in the theme editor.
  • If you upload a zip containing a file with a filename that is in a different from the existing file, the upload is successful.
  • “Referrer” header for Portal Log-in page functions correctly.
  • The fs.chunks and fs.files collections are updated when content is deleted.
  • Administrator logins are tracked and audited.
  • Portal users only see the login page if they are not logged in.
  • The DITA MIME type (application/dita+xml) is currently recognized by Titania Delivery.
  • The results of the search tags in portal themes include metadata.
  • There is a way to set the number of facet values you want Titania Delivery to return.
  • Adding a folder with the same name no longer causes an error.
  • Creation of a Project with “ / “ in the name is now allowed.
  • Titania Delivery can connect to the MongoDB replica sets in failover mode.
  • References to graphics with “+” in the name function correctly.
  • Tables now appear in some browsers if table cell borders are specified in points that convert to less than half a pixel.
  • Files with Unicode characters in the name (e.g .Ø) no longer return an error.
  • Titania Delivery metrics capture the correct client IP when running behind an AWS load balancer.
  • There is now a way to create custom non-HTML pages in portal themes.
  • Views of content in custom pages are recorded in the reporting system.

A.44 Version 2.1

October 15, 2015
New Features

The following new features and improvements were added in this release.

  • Support for the @chunk attribute in DITA maps
  • The file system connector exposes the ability to trigger reprocessing after sync.
  • The default metadata rules for DITA content now captures language metadata.
  • Non-DITA content, such as text, markdown, and HTML, can now be embedded in portal pages.
  • File names are now captured as metadata by default.
Resolved Issues

The following issues were resolved in this release.

  • Document type referencing itself no longer triggers a system freeze when content using that document type is processed.
  • Empty DITA links using @keyref are now populated correctly.
  • The default portal theme stylesheet now correctly renders links containing elements with IDs.
  • Invalid DITA maps containing duplicate topicmeta elements no longer cause processing to fail.
  • The <@harp.content> portal theme directive no longer breaks rendering when used to search for content that doesn't exist.
  • The available document type list when adding document types to projects is now filtered correctly.
  • Certain processing instruction combinations inside tables no longer cause rendering failures.
  • Invalid URI references to content with percent signs in the file name now will be handled as expected.
  • References to files whose name begins with a space now function correctly.
  • DITA xrefs inside content referenced via a conkeyref now resolve correctly.
  • Conref resolution failures are now reported in the validation log.
  • If conref and conkeyref are both specified and resolvable in DITA content, conkeyref now takes precedence over conref .
  • Links to topics without ID attributes now resolve correctly.
  • Metadata on topics "flattened" via chunking are now pulled up to the outermost chunk, so that searching and filtering based on that metadata functions correctly.

A.45 Version 2.0d

May 18, 2015
Resolved Issues

The following issues were resolved in this release.

  • Image conversion parameters can now be configured via metadata, and the default conversion algorithm has been fixed to properly handle EPS graphics.
  • The <@harp.content> portal theme directive now resolves links correctly when rendering content retrieved via a search term.

A.46 Version 2.0c

April 30, 2015
Resolved Issues

The following issues were resolved in this release.

  • Referrers in analytics reports now attempt to properly account for all intermediate proxies and reverse-proxies.
  • All metadata on DITA maps now cascades correctly to contextualized topics.
  • HTTP caching headers are now more strict for static portal theme files.
  • URLs containing semicolons now function as expected.

A.47 Version 2.0b

April 24, 2015
Resolved Issues

The following issues were resolved in this release.

  • Uploading files no longer causes "Null Pointer Exception" error messages.

A.48 Version 2.0a

April 19. 2015
Resolved Issues

The following issues were resolved in this release.

  • Microsoft Powerpoint files containing spaces in their names no longer fail to download from portals.
  • Single-server deployments now convert EPS and TIFF graphics correctly.
  • Changes to portal titles are now reflected in the portal correctly.
  • The <@harp.searchResultUrl> portal theme directive now properly includes specified search facets.
  • Attempts to delete the first piece of metadata on a file no longer delete the last metadata entry instead.

A.49 Version 2.0

April 10, 2015
New Features

The following new features and improvements were added in this release.

  • The product is now called "Titania Delivery" instead of "HARP".
  • Portals now support custom assemblies of DITA topics.
  • A fully-functional commenting system has been added to the Portal Theme infrastructure.
  • Users can now remove themselves from Projects and Organizations.
  • The QR code is now rendered on every page in the default portal theme.
  • The Add User dialog for Projects and Organizations now supports autocomplete for known users.
  • The Portal Theme SDK has been significanly improved in numerous areas.
  • Portal usage staticstics, including document views and searches, can be downloaded in CSV format.
  • Portal performance has been significantly improved.
  • Metadata values are now included in the full-text search index.
  • Built-in metadata rules have been upgraded to indicate XML and DITA content type.
Resolved Issues

The following issues were resolved in this release.

  • Contents of <draft-comment> DITA elements is no longer included in the search index.
  • Creating a folder with the same name as an existing folder now fails gracefully.
  • The table of contents floating window no longer jumps when viewed on very short dopics.
  • Organization membership lists no longer revert after making other changes to the Organization.
  • The file name of a downloaded project now matches the current name of the project, not the original name when it was created.
  • It is no longer possible to delete a Portal Theme in use by one or more Portal.
  • It is no longer possible to add the same user to a Project or Organization more than once.
  • 'Next Topic' links in portals now function correctly.
  • The 'Parent Topic' link in assemblies no longer causes rendering errors.
  • DITA cross-references that specify a keyref with an element ID now auto-scroll to the specified element.
  • Links to topics containing conkeyrefs in their short descriptions now render correctly at the link.
  • Files containing '+' in the file name are now processed correctly.
  • DITA maps with a title attribute but no title element now appear correctly in portals.
  • Portal URL paths are no longer case-sensitive.
  • The styling of the Assembly metadata view within administrative projects is now rendered correctly.
  • Renamed organizations now appear correctly in users' Organization lists, not the old name.
  • Next/previous links in the 'Blue' theme now wrap correctly.
  • Microsoft Excel spreadsheets are no longer given the title of their first worksheet as the main document title.
  • The Portal Theme Search directives now correctly handle ampersands (&) in the search term correctly.

A.50 Version 1.2

December 10, 2014
New Features

The following new features and improvements were added in this release.

  • Portals can now be securied with LDAP user repositories.
  • The administrative UI styling has been completely overhauled.
  • Editing user-specified metadata now occurs in a separate dialog, and all changes applied at once.
  • Organizations can now be renamed.
  • The Created and Last Modified date now appears on files' Details tabs.
  • Sync Services is now available to integrate with external document repositories.
  • Certain video formats can now be previewed in the administrative application.
  • It is now possible to reprocess individual files, without having to reprocess the project as a whole.
Resolved Issues

The following issues were resolved in this release.

  • Renamed Projects now appear correctly in a user's lists.
  • Renamed users now appear correctly in Project and Organization membership lists.
  • Search indexing has been improved.
  • The search index now includes created and last modified dates, for use in result sorting.
  • The code for the built-in portal themes have been significantly cleaned up.
  • The Add User button for Organizations now functions correctly after navigating to another tab and then back.
  • Sub-maps with title-only topicrefs at the root level are now rendered correctly.
  • DITA maps whose metadata removes it from a portal will no longer be rendered when directly addressed.
  • @pgwide="yes" on tables is now handled correctly.
  • Blank metadata values for metadata used as search facets no longer appear in the search UI.
  • Improved handling of references to files with spaces in the name.
  • Significatn performance improvements to DITA processing, particularly in the area of reltable handling.

A.51 Version 1.1

October 10, 2014
New Features

The following new features and improvements were added in this release.

  • Titania Delivery will now include Microsoft Office and Adobe PDF format files in its full-text index.
  • Text and keywords can be provided for binary file types for inclusion in the full-text index.
  • Individual files can now be downloaded, in addition to a Project as a whole.
  • Portal search results now include an icon indicating the file type.
Resolved Issues

The following issues were resolved in this release.

  • Breadcrumbs have been reorganized to include Organizations.
  • TIFF graphics now display correctly.
  • Project-level metadata now accounted for in portal content filtering.
  • You can now specify a project's owner curing creation.
  • Assembly editor search now functions as expected.
  • PDF viewer now works correctly in Internet Explorer browsers.
  • PDFs now appear in a portal's home page.
  • The Upload progressbar remains visible until all files are uploaded.
  • Portal report graphis are now sized properly on Internet Explorer browsers.
  • Failed graphic conversions now provide details on the 'Validation' tab.
  • Search facet values containing Trademark symbols now function correctly.
  • The various 'New' dialogs have been redesigned for consistency.
  • References to non-DITA documents from DITA maps specifying the navtitle attribute but no navtitle element will now appear.
  • Assemblies now function correctly for projects that do not include the DITA Map document type.
  • DITA keywords are now incdexed correctly.
  • The built-in XSLT modules have been refactored to allow specification of custom attributes without needing to override a tag's handling entirely.
  • Default XSLT modules now pass profiling attributes to HTML output as 'data-' attributes.
  • Downloaded files from portals now use the correct file name.
  • Clicking outside the 'New Portal' dialog no longer causes the dialog to close.
  • JPEG graphics with orientation metadata are now displayed correctly.

A.52 Version 1.0

August 22, 2014
New Features

The following new features and improvements were added in this release.

  • Robust DITA 1.2 content delivery infrastructure.
  • Fully-configurable portal theme infrastructure with robust SDK.
  • Administrators can create custom assemblies of DITA topics directly in the tool.
  • Simple and intuitive Web interface for content loading and portal configuration.
  • Deliver large volumes of content to multiple audiences via separate delivery portals.