Map CA Agile Central Projects to Custom Fields With TFS
The following topics may be useful for advanced developers:
- Map CA Agile Central projects to custom fields with TFS
- Unable to get local issuer certificates
- Time zones in WSAPI
- Access preference permissions
- Find Object IDs (OIDs)
Map CA Agile Central projects to custom fields with TFS
Mapping CA Agile Central reference fields requires the CA Agile CentralReferenceFieldHandler tag, as described in mapping reference fields.
- Export bug definition file bug.xml.
- Modify bug.xml.
- Find <Tab Label="CA Agile Central"> section and add the following:
- Validate changes:
- Import changes.
- Notice that CA Agile Central Project drop-down is now available under CA Agile Central tab in TFS:
- Modify the config file to map CA Agile Central's Project field to CA Agile Central.Common.Project in TFS.
- Create a new defect in TFS and set CA Agile Central Project value.
- The defect is successfully created in CA Agile Central's Team2 project.
Unable to get local issuer certificates
The main issue is Curl fails to connect using SSL because there is a problem negotiating the CA Agile Central certificate. The output from openssl indicates the issue is (unable to get local issuer certificate).
The certificate installed on CA Agile Central works with all of the major browsers. However, Curl does not work well with a wildcard certificate. You are able to get around this by using curl -k or curl --insecure. This will continue to use SSL, but will not validate the certificate.
Example Curl command:
curl.exe -k --user <username:password> "https://preview.rallydev.com/slm/webservice/current/workspace/620900"
Time zones in WSAPI
The normalization that occurs inside the getters and setters for these attributes is largely transparent to the rest of the application (except for querying) and is not likely causing any issues. CA Agile Central made a change to the WSAPI in version 1.30 to handle cases where the user and workspace time zones differ. However, there were no changes to the import code.
Previously, CA Agile Central took a provided date with time zone (using the user's time zone if none specified), shift it to the start or end of the day in the workspace's time zone, and then store the result. It was possible that the shifted date reflected a moment in time that no longer fell on the same day as the provided date. This broke the Ext grids.
The new behavior is almost the same except that when we shift the provided date to the start or end of the day in the workspace's time zone, we ensure that the shifted date always reflects a moment in time that falls on the same day as the provided date.
Example (based on the one in the API Versioning section of the WSAPI docs):
- The workspace's time zone is America/Los_Angeles (with an offset of -0700).
- The user is working in the America/New_York time zone (with an offset of -0400).
- The user creates an iteration with a start date of 2012-06-12T00:00:00:000-0400.
In WSAPI version 1.29 and below:
- The start date is adjusted to 2012-06-11T03:00:00:000-0400.
- The start date, as returned by the API, rendered in UTC: 2012-06-11T07:00:00:000Z.
In WSAPI version 1.30 and above:
- The start Date is adjusted to 2012-06-12T03:00:00:000-0400.
- The start Date, as returned by the API, rendered in UTC: 2012-06-12T07:00:00:000Z.
Access preference permissions
The rules for reading user preferences are:
The requesting user (user1) can read user2's preferences if:
- They are the same user (a user can read her own preferences)
- User1 is a subscription administrator
- User1 is a workspace administrator for ANY workspace AND user2 is not a subscription administrator.
Additionally, in order to add or edit user preferences, the same rules apply except that workspace administrators also need to be able to add users (the subscription setting previously mentioned).
This logic is found in User.java, canBeReadBy(user) and canBeWrittenBy(user).
Find Object IDs (OIDs) without administrative rights
All CA Agile Central artifacts carry a unique Object ID (OID). This number is generally hidden and allows the software to find an item in its exact location. When writing a webscript or custom application for CA Agile Central, these OIDs are needed to point to the correct project or workspace.
Only administrators can obtain the OID for a project or workspace through the GUI. If you are not an administrator, you can use the process below to query these values through webservices.
- Create a new custom page.
- In the a pop-up editor, uncomment the default code by removing the <! -- characters at the top of the window, and then remove the -- > characters below the block of text.
- Click Save & Close.
- The custom tab script will run, and you will see your OIDs for workspace and projects in scope.