Codebeamer DOORS Bridge REST API
Codebeamer 9.1 and newer, also has special DOORS Bridge REST API, that allows to script:
This document only describes the DOORS Bridge specific functionality.
Please see REST API (v1), for an introduction.
Get the Top-Level Nodes of the DOORS Hierarchy
GET /doors/hierarchy[?options]
Option |
Type |
Required |
Meaning |
server |
String |
Yes |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
recursively |
boolean |
No |
Get descendants recursively (true), or only get top-level nodes (false) ? Default is false. |
baselineSets |
boolean |
No |
Only show projects and folders and the number of baseline set definitions per node (true),
or show projects, folders and (formal) modules, without baseline sets (false).
Default is false. |
The response contains an array of JSON objects, where each object represents an item in the DOORS hierarchy.
The "type" of an item is:
Type |
Meaning |
1 |
Folder |
2 |
Project |
3 |
Module |
E.g.
GET /doors/hierarchy?server=http://my-doors-bridge:9090/db&username=...&password=...
[ {
"id" : "00000001",
"type" : 2,
"name" : "Klaus Test",
"description" : "Testprojekt für Tests von Klaus"
}, {
"id" : "00000002",
"type" : 1,
"name" : "Intland Software",
"description" : "Daten von Intland Software"
}, {
"id" : "00000003",
"type" : 1,
"name" : "Mechatronics",
"description" : "Merit Automotive Electronics"
}, {
"id" : "00000004",
"type" : 2,
"name" : "Test Project"
}, {
"id" : "00000005",
"type" : 2,
"name" : "ReqIF Test",
"description" : "Project to test ReqIF import/export"
} ]
Get the Children or Descendants of the Specified DOORS Hierarchy Node
GET /doors/{node}/children[?options]
Option |
Type |
Required |
Meaning |
node |
String |
Yes |
The Id of the parent node, e.g. "00000001". |
server |
String |
Yes |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
recursively |
boolean |
No |
Get descendants recursively (true), or only get direct children (false) ? Default is false. |
baselineSets |
boolean |
No |
Only show projects and folders and the number of baseline set definitions per node (true),
or show projects, folders and (formal) modules, without baseline sets (false).
Default is false. |
The response contains an array of JSON objects, where each object represents an item in the DOORS hierarchy.
E.g.
GET /doors/00000001/children?server=http://my-doors-bridge:9090/db&username=...&password=...&recursively=true
[ {
"id" : "00000020",
"type" : 3,
"name" : "Pflichtenheft",
"description" : "Ein Test Pflichenheft"
}, {
"id" : "00000021",
"type" : 1,
"name" : "Testmanagement",
"description" : "Daten für das Testmanagement",
"children" : [ {
"id" : "00000040",
"type" : 1,
"name" : "Spezifikationen",
"description" : "Testfälle und Testspezifikationen",
"children" : [ {
"id" : "00000060",
"type" : 3,
"name" : "Testfälle",
"description" : "Testfall Spezifiationen"
} ]
}, {
"id" : "00000041",
"type" : 1,
"name" : "Testprotokolle",
"description" : "Protokolle/Ergebnisse"
} ]
} ]
Get the Baseline Sets Defined in the Specified DOORS Project or Folder
GET /doors/{projectOrFolder}/baselineSets[?options]
Option |
Type |
Required |
Meaning |
projectOrFolder |
String |
Yes |
The Id of the DOORS project or folder, e.g. "000000a0". |
server |
String |
Yes |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
baselines |
boolean |
No |
Also get module baselines per baseline set (true), or only get baseline set definitions including modules and baseline sets (false) ? Default is false. |
The response contains an array of JSON objects, where each object represents a DOORS baseline set definition, including modules and baseline sets.
E.g.
GET /doors/000000a0/baselineSet?server=http://my-doors-bridge:9090/db&username=...&password=...&baselines=true
[ {
"name" : "SA deliveries",
"description" : "Baselines made after each SA docs delivery",
"modules" : [ {
"id" : "00000182",
"name" : "RTD_10024803_I",
"description" : "RTD - B3",
"path" : "/Mechatronics/10024803/02_SYS_REQs/RTD_10024803_I"
}, {
"id" : "00000260",
"name" : "EETP_10024803",
"description" : "Electrical Test Specification",
"path" : "/Mechatronics/10024803/10_SYS_Test/EE/EETP_10024803"
}, {
...
} ],
"baselineSets" : [ {
"id" : "1.0.1.0",
"description" : "SA B1 delivery",
"Created On" : 1394625274,
"Created By" : "krzysztof",
"baselines" : {
"00000182" : "3.0.1.0",
"00000260" : "3.0.1.0",
...
}
}, {
...
} ]
}, {
...
} ]
GET /doors/{module}/metaData[?options]
Option |
Type |
Required |
Meaning |
module |
String |
Yes |
The Id of the formal module, e.g. "00000020".
Can also be comma-separated list of module ids, to get the merged/aggregated meta data of multiple modules. |
server |
String |
Yes |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
The response is a JSON object with the attributes and link types of the specified module.
The "type" of an attribute is:
Type |
Meaning |
0 |
String |
1 |
Integer |
2 |
Decimal |
3 |
Timestamp |
4 |
Boolean |
5 |
Username |
6 |
Enumeration |
7 |
Reference |
10 |
Rich Text |
E.g.
GET /doors/00000020/metaData?server=http://my-doors-bridge:9090/db&username=...&password=...
{
"id" : "00000020",
"name" : "Pflichtenheft",
"description" : "Ein Test Pflichenheft",
"locked" : true,
"attributes" : [ {
"name" : "Created By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Created On",
"type" : 3
}, {
"name" : "Created Thru",
"type" : 6,
"options" : [ {
"id" : 0,
"name" : "Manual Input"
}, {
"id" : 1,
"name" : "Extracting"
}, {
"id" : 2,
"name" : "Copying"
} ],
"default" : "Manual Input"
}, {
"name" : "Last Modified By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Last Modified On",
"type" : 3
}, {
"name" : "Priorität",
"description" : "Die Priorität der Anforderung",
"type" : 6,
"options" : [ {
"id" : 1,
"name" : "Nice to have",
"color" : 0
}, {
"id" : 2,
"name" : "Want to have",
"color" : 33
}, {
"id" : 3,
"name" : "Must have",
"color" : 29
} ],
"editable" : true
}, {
"name" : "Speisefolge",
"description" : "Umfang des gewünschten Menüs",
"type" : 6,
"options" : [ {
"id" : 1,
"name" : "Vorspeise"
}, {
"id" : 2,
"name" : "Suppe"
}, {
"id" : 3,
"name" : "Hauptgericht"
}, {
"id" : 4,
"name" : "Dessert"
} ],
"multiple" : true,
"editable" : true
}, {
"name" : "Status",
"description" : "Der Status der Anforderung",
"type" : 6,
"options" : [ {
"id" : 1,
"name" : "Entwurf",
"color" : 28
}, {
"id" : 3,
"name" : "Akzeptiert",
"color" : 25
}, {
"id" : 2,
"name" : "Abgelehnt",
"color" : 13
} ],
"editable" : true
}, {
"name" : "attachments",
"type" : 7,
"refType" : 5,
"refQuali" : [ "attachment" ],
"multiple" : true,
"label" : "Attachments",
"description" : "Whether to import embedded OLE objects and pictures as attachments, or only the object rich text without embedded OLE objects and pictures",
"editable" : true
}, {
"name" : "discussions",
"type" : 7,
"refType" : 5,
"refQuali" : [ "comment" ],
"multiple" : true,
"label" : "Discussions",
"description" : "Whether to also import object discussions and comments, or not. (Only possible, if users are also imported)",
"editable" : true
}, {
"name" : "history",
"type" : 7,
"refType" : 5,
"refQuali" : [ "change" ],
"multiple" : true,
"label" : "History",
"description" : "Whether to also import the object history, or not. (Only possible, if users are also imported)"
} ],
"linkTypes" : [ {
"id" : "00000022",
"name" : "DOORS Links",
"description" : "Automatisch von DOORS erstelltes Linkmodul",
"attributes" : [ {
"name" : "Created By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Created On",
"type" : 3
}, {
"name" : "Last Modified By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Last Modified On",
"type" : 3
} ]
}, {
"id" : "External",
"name" : "External",
"description" : "Links to external resources",
"attributes" : [ {
"name" : "Created By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Created On",
"type" : 3
}, {
"name" : "Last Modified By",
"type" : 5,
"memberType" : 2
}, {
"name" : "Last Modified On",
"type" : 3
} ]
} ]
}
For more details, see section You must login to see this link. Register now, if you have no user account yet..
Get a HTML Preview of the Specified DOORS Module
GET /doors/{module}/preview[?options]
Option |
Type |
Required |
Meaning |
module |
String |
Yes |
The Id of the formal module to preview, e.g. "00000020". |
baseline |
String |
No |
The (version) Id of the module baseline to preview. The default is null, to show the current/head revision of the module. |
server |
String |
Yes |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
length |
int |
No |
The length of the preview (number of items to show). The default is the first 50 items. |
The response is an HTML fragment in UTF-8 encoding.
E.g.
GET /doors/00000020/preview?server=http://my-doors-bridge:9090/db&username=...&password=...
Since Codebeamer release 22.10-LTS (GINA).
GET / doors/bridges
You only get information about DOORS Bridges that are either public, or where you have explicit access.
For example:
[ {
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
} ]
Since Codebeamer release 22.10-LTS (GINA).
GET /doors/bridge/{bridgeId}
You only get information about DOORS Bridges that are either public, or where you have explicit access.
For example:
GET /doors/bridge/12345
{
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
}
Get the Tracker Associated with the Specified DOORS Module
In Codebeamer release 22.04 (FELICITY) and older:
GET /doors/{module}/tracker[?options]
Since Codebeamer release 22.10-LTS (GINA) and newer:
GET {CB}/rest/doors/bridge/{bridgeId}/module/{moduleId}/tracker[?options]
Option |
Type |
Required |
Meaning |
bridgeId |
int |
Yes |
The Id of the DOORS Bridge instance, to which the module belongs. The calling user must have access to the specified /doors/bridge/{bridgeId} or the bridge must be public. |
module |
String |
Yes |
The Id of the formal module, whose associated tracker to get, for example: "00000020". |
tracker_id |
int |
No |
An optional Codebeamer tracker id, to check, if the specified module can be associated with this tracker. |
The result is information about the associated Codebeamer tracker, or null, if the specified module is not associated with any tracker.
For example:
GET /doors/bridge/12345/module/000000a0/tracker
{
"id" : 5130,
"type" : 5,
"path" : "Tracker",
"name" : "Pflichtenheft",
"title" : "",
"project" : {
"id" : 14,
"name" : "Test"
}
}
Get the DOORS Import Settings of the Specified Tracker
GET /tracker/{trackerId}/doors/settings[?options]
Option |
Type |
Required |
Meaning |
trackerId |
int |
Yes |
The id of the Codebeamer tracker, whose DOORS import settings to get. |
version |
int |
No |
The id of a DOORS import history log entry, in order to get the historic import settings, that were in affect for that import. |
You must be a Tracker Administrator, in order to get this information.
The result is a JSON object with information about the currently associated DOOORS module (if any), the import configuration and additional info to configure the import.
{
"id" : 83740,
"server" : {
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
},
"username" : "Klaus"
"password" : "*****",
"module" : {
"id" : "00000020",
"type" : 3,
"name" : "Pflichtenheft",
"description" : "Ein Test Pflichenheft",
"path" : "/Klaus Test/Pflichtenheft",
"lock" : true,
"modify" : true
},
"enabled" : true,
"reliable" : false,
"lockModule" : true,
"linkObjects" : false,
"users" : true,
"fields" : [ {
"name" : "Created By",
"type" : 5,
"memberType" : 2,
"target" : 6
}, {
"name" : "Created On",
"type" : 3,
"target" : 4
}, {
"name" : "Last Modified By",
"type" : 5,
"memberType" : 2,
"target" : 75
},
...
],
"links" : [ {
"id" : "00000022",
"name" : "DOORS Links",
"description" : "Automatisch von DOORS erstelltes Linkmodul",
"attributes" : [ {
"name" : "Created By",
"type" : 5,
"memberType" : 2,
"target" : {
"id" : 6,
"name" : "Created by"
}
},
...
],
"target" : 1
}, {
"id" : "External",
"name" : "External",
"description" : "Links to external resources",
"attributes" : [ ... ],
"target" : 4
} ],
"interval" : "8:00h",
"log" : -1,
"userAdmin" : true,
"objectFields" : [ ... ],
"reservedFields" : [ ... ],
"dedicatedField" : { ... },
"designatedField" : { ... },
"assocTypes" : [ ... ],
"linkFields" : [ ... ]
}
Information |
Meaning |
id |
Since Codebeamer release 22.10-LTS (GINA). The Id of this DOORS import configuration. |
server |
In Codebeamer release 22.04 (FELICITY) and older: The (hostname, ip-address and port) of the DOORS Bridge server.
Since Codebeamer release 22.10-LTS (GINA): The information about the DOORS Bridge. |
username |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
The DOORS password, to authenticate the specified DOORS user. |
module |
Information about the associated DOORS module (if any). |
reliable |
Whether DOORS Bridge should trust the history of the DOORS module (true) or not (false). |
enabled |
Whether importing from the DOORS module into the tracker is enabled (true) or disabled (false). |
lockModule |
Whether the DOORS module should be locked as "migrated", after having imported the relevant baselines and the current (head) revision (true) or not (false). |
linkObjects |
Whether the objects in the DOORS module should be linked to the migrated items in the target Codebeamer tracker (true) or not (false). |
users |
Whether DOORS users should be imported as Codebeamer users or not. Prerequisite for importing DOORS discussions, comments and history. |
fields |
An array of those attributes of the DOORS module, that should be imported into target tracker fields, where target is the id of the tracker field.
Enumeration fields also have an array of the enum values and their mapping to target choice options, where target is the id of the choice option. |
links |
An array of those link types of the DOORS module, that should be imported as target tracker item associations. target is the id of the Codebeamer association type. |
interval |
The interval of periodic imports. Empty/null means no periodic imports. The minimum is "10 min". |
log |
The max. number of imports, to log in the import history. The default is -1 (All). Preferred values are: -1, 10, 20, 50, 100, 200, 500 |
The response also contains this additional information about the target tracker, that will be required to display and configure the users, fields and linkstarget mapping:
Information |
Meaning |
userAdmin |
Whether you have "User - Admin" permission (necessary in order to import DOORS users as Codebeamer users) or not |
objectFields |
An array of those tracker fields, that can be associated as targets for the import of DOORS module attributes, e.g.
"objectFields" : [ {
"id" : 2,
"property" : "namedPriority",
"name" : "Business Value",
"label" : "Business Value",
"type" : 6,
"required" : false,
"multiple" : false,
"options" : [ {
"id" : 5,
"name" : "Nice to have",
"label" : "Nice to have",
"flags" : 0
}, {
"id" : 3,
"name" : "Should have",
"label" : "Should have",
"flags" : 0
}, {
"id" : 1,
"name" : "Must have",
"label" : "Must have",
"flags" : 0
} ]
}, {
"id" : 7,
"property" : "status",
"name" : "Status",
"label" : "Status",
"type" : 6,
"required" : false,
"multiple" : false,
"options" : [ {
"id" : 1,
"name" : "New",
"label" : "New",
"flags" : 0
}, {
"id" : 2,
"name" : "Draft",
"label" : "Draft",
"flags" : 64
}, {
"id" : 3,
"name" : "Waiting for approval",
"label" : "Waiting for approval",
"flags" : 4,
"style" : "#00a85d"
}, {
"id" : 4,
"name" : "Rejected",
"label" : "Rejected",
"flags" : 16,
"style" : "#ababab"
}, {
"id" : 5,
"name" : "Accepted",
"label" : "Accepted",
"flags" : 16
} ]
},
...
] |
reservedFields |
An array of those tracker fields, that cannot be associated with DOORS module attributes, but whose names cannot be used for new custom target fields |
dedicatedField |
Information about those tracker fields, that can only be associated with dedicated DOORS module attributes, or not at all
"dedicatedField" : {
"ForeignID" : [ "id" ],
"88" : [ "attachments" ],
"AttachmentsOnly" : [ "attachments" ],
"90" : [ "discussions" ],
"Comments" : [ "discussions" ],
"30" : [ "history" ],
"History" : [ "history" ],
"4" : [ "Created On" ],
"ForeignCreatedOn" : [ "Created On" ],
"6" : [ "Created By" ],
"ForeignCreatedBy" : [ "Created By" ],
"ForeignCreatedThru" : [ "Created Thru" ],
"74" : [ "Last Modified On" ],
"ForeignModifiedOn" : [ "Last Modified On" ],
"75" : [ "Last Modified By" ],
"ForeignModifiedBy" : [ "Last Modified By" ]
}
The dedicatedField key is the id or name of a tracker field, and the value is an array of the DOORS attribute names, where this field is dedicated for. |
designatedField |
Information about designated custom fields, that should be offered as possible target fields, even if no such objectField exists yet.
"designatedField" : {
"id" : {
"name" : "ForeignID",
"label" : "Foreign ID",
"description" : "The original DOORS Object Id",
"type" : 1
},
"attachments" : {
"id" : 88,
"property" : "attachments",
"name" : "AttachmentsOnly",
"label" : "Attachments",
"type" : 7,
"refType" : 5,
"refQuali" : [ "attachment" ],
"multiple" : true
},
"discussions" : {
"id" : 90,
"name" : "Comments",
"label" : "Comments",
"type" : 7,
"refType" : 5,
"refQuali" : [ "comment" ],
"multiple" : true
},
"history" : {
"id" : 30,
"property" : "milestones",
"name" : "History",
"label" : "History",
"type" : 7,
"refType" : 5,
"refQuali" : [ "change" ],
"multiple" : true
},
"Created On" : {
"name" : "ForeignCreatedOn",
"label" : "Foreign Created at",
"type" : 3
},
"Created By" : {
"name" : "ForeignCreatedBy",
"label" : "Foreign Created by",
"type" : 0,
"of" : {
"type" : 5,
"memberType" : 2
}
},
"Created Thru" : {
"name" : "ForeignCreatedThru",
"label" : "Foreign Created thru",
"type" : 6,
"options" : [ {
"name" : "Manual Input",
"label" : "Manual Input",
"flags" : 0
}, {
"name" : "Extracting",
"label" : "Extracting",
"flags" : 0
}, {
"name" : "Copying",
"label" : "Copying",
"flags" : 0
} ]
},
"Last Modified On" : {
"name" : "ForeignModifiedOn",
"label" : "Foreign Modified at",
"type" : 3
},
"Last Modified By" : {
"name" : "ForeignModifiedBy",
"label" : "Foreign Modified by",
"type" : 0,
"of" : {
"type" : 5,
"memberType" : 2
}
}
}
The designatedField key is the name of the DOORS attribute, and the value is the definition of the designated custom tracker field. |
assocTypes |
An array of the Codebeamer association types, that can be associated as DOORS link type target.
"assocTypes" : [ {
"id" : 1,
"name" : "depends"
}, {
"id" : 2,
"name" : "superordinate to"
}, {
"id" : 3,
"name" : "subordinate to"
}, {
"id" : 4,
"name" : "related"
}, {
"id" : 5,
"name" : "derived"
}, {
"id" : 6,
"name" : "violates"
}, {
"id" : 7,
"name" : "excludes"
}, {
"id" : 8,
"name" : "invalidates"
}, {
"id" : 9,
"name" : "copy of"
} ] |
linkFields |
An array of the predefined Codebeamer association fields, that can be associated as DOORS link attribute target.
"linkFields" : [ {
"id" : 4,
"property" : "submittedAt",
"name" : "Created at",
"label" : "Created at",
"type" : 3
}, {
"id" : 6,
"property" : "submitter",
"name" : "Created by",
"label" : "Created by",
"type" : 5,
"memberType" : 2
}, {
"id" : 74,
"property" : "modifiedAt",
"name" : "Modified at",
"label" : "Modified at",
"type" : 3
}, {
"id" : 75,
"property" : "modifier",
"name" : "Modified by",
"label" : "Modified by",
"type" : 5,
"memberType" : 2
}, {
"id" : 10000,
"property" : "customField[0]",
"name" : "Propagate suspects",
"label" : "Propagate suspects",
"description" : "Should this association be marked 'Suspected' whenever the association target is modified?",
"type" : 4
}, {
"id" : 10001,
"property" : "customField[1]",
"name" : "Suspected",
"label" : "Suspected",
"description" : "Has the association target been modified since creating/resetting this association?",
"type" : 4
}, {
"id" : 85,
"property" : "flags",
"name" : "Deleted",
"label" : "Deleted",
"type" : 1
} ] |
Set the DOORS Import Settings for the Specified Tracker
PUT /tracker/{trackerId}/doors/settings
You must be a Tracker Administrator, in order to configure DOORS import for a tracker.
The request body must be a JSON object with the following information (see description above):
- id - Only since Codebeamer release 22.10-LTS (GINA). The ID of the existing configuration to update, or null if this is a new configuration.
- server
- username
- password
- module
- enabled
- reliable (optional, default false)
- lockModule (optional, default false)
- linkObjects (optional, default false)
- users (optional, default false)
- fields (optional, by default only the DOORS object id, object heading and object text will be imported, all other attributes have to be specified here).
- links (optional, by default no links will be imported).
- interval (optional, by default imports will not run periodically)
- log (optional, by default all imports will be logged)
To build the fields and links mapping, you should use the attributes and linkTypes of the module:
GET /doors/{module}/metaData[?options]
The fields mapping is an array of those module attributes, that you want to import, plus the target field mapping.
You can only import
- discussions
- and the history
if you are also importing users, which is only allowed, if you have userAdmin permission.
You can only assign DOORS user attributes {"type": 5, "memberType" : 2} , e.g. "Created By", to target member fields {"type": 5, "memberType" : 2} , e.g. "Submitted By", if you are importing users (see above).
The target of each attribute to import, is either one of the existing objectFields (the target field must be assignment compatible to the DOORS attribute and dedicatedFields can only be assigned to the specified attributes or not at all)
"target" : {
"id" : ...
}
the designatedField, or, if there is no designated target field for the attribute, a new custom field with the specified name, e.g.
"target" : {
"name" : "XXX"
}
The name XXX of new target fields must be unique within the tracker, so it must not be
- the property, name or label of any of the existing objectFields, reservedFields or designatedFields, nor
- the name of any other attribute target.
The attribute target field mapping must be unique. No two DOORS attributes must be mapped to the same target field !
If an attribute to import is an enumeration, then you must also map the attribute's enum values (options).
The target of an enum value must be either one of the existing options of the attribute target choice field, or a new choice option with the specified name.
The name of new target choice options must be unique within the target choice field, so it must not be
- the name or label of any of the existing options of the target choice field, nor
- the name of any other enum value target (for the same enum attribute).
The choice option target mapping must be unique per target field. No two enum values of the same DOORS attribute must be mapped to the same choice option of the target field !
The links mapping is an array of those module linkTypes, that you want to import, plus the target association type mapping.
The target of a link type must be one of the predefined assocTypes! You cannot define new targets for links!
The link target association mapping must be unique. No two DOORS link types (except "External" links) must be mapped to the same target association type !
The attributes of the links to import, must be mapped in the same way than object attributes.
Remove the DOORS Import Settings for the Specified Tracker
DELETE /tracker/{trackerId}/doors/settings
You must be a Tracker Administrator, in order to delete the DOORS import for a tracker.
What, if you want to import DOORS Modules into a Codebeamer project, but there is no appropriate target tracker yet ?
You can create new target trackers and configure DOORS import for a bulk/batch of DOORS modules via:
POST /project/{projIdOrName}/doors/modules
You must be a Tracker Administrator in the specified project.
The request body must be a JSON object with the following information (see description above):
- server
- username
- password
- modules
- template
- enabled
- reliable (optional, default false)
- lockModule (optional, default false)
- linkObjects (optional, default false)
- users (optional, default false)
- fields (optional, by default only the DOORS object id, object heading and object text will be imported, all other attributes have to be specified here).
- links (optional, by default no links will be imported).
- interval (optional, by default imports will not run periodically)
- log (optional, by default all imports will be logged)
Information |
Meaning |
server |
In Codebeamer release 22.14 (FELICITY) and older: The (hostname, ip-address and port) of the DOORS Bridge server.
Since Codebeamer release 22.10-LTS (GINA): A JSON object with at least the ID of the DOORS Bridge. |
username |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
The DOORS password, to authenticate the specified DOORS user. |
modules |
An array of the DOORS modules, for whom to create target trackers in the specified project. The name and description of each tracker will be copied from the respective module. |
template |
Either the template tracker to use, or a JSON object, that defines the tracker type to use |
reliable |
Whether DOORS Bridge should trust the history of the DOORS module (true) or not (false). |
enabled |
Whether importing from the DOORS module into the tracker is enabled (true) or disabled (false). |
lockModule |
Whether the DOORS module should be locked as "migrated", after having imported the relevant baselines and the current (head) revision (true) or not (false). |
linkObjects |
Whether the objects in the DOORS module should be linked to the migrated items in the target Codebeamer tracker (true) or not (false). |
users |
Whether DOORS users should be imported as Codebeamer users or not. Prerequisite for importing DOORS discussions, comments and history. |
fields |
An array of those attributes of the DOORS module, that should be imported into target tracker fields, where target is the id of the tracker field.
Enumeration fields also have an array of the enum values and their mapping to target choice options, where target is the id of the choice option. |
links |
An array of those link types of the DOORS module, that should be imported as target tracker item associations. target is the id of the Codebeamer association type. |
interval |
The interval of periodic imports. Empty/null means no periodic imports. The minimum is "10 min". |
log |
The max. number of imports, to log in the import history. The default is -1 (All). Preferred values are: -1, 10, 20, 50, 100, 200, 500 |
All modules in a batch should contain the same type of objects, e.g. Requirements, because you can only specify one template for the new target trackers.
To find out, which template trackers and tracker types are available for new DOORS import target trackers in the specified project, use:
GET /project/{projIdOrName}/doors/trackerTemplate
This request is documented further down below.
You have to select either one of the available template trackers, e.g.
"template" : {
"id" : <template id>,
"inherit" : true
}
where <template id> is the id of the template and inherit should be true to inherit the template configuration, or false to copy the template configuration.
Or, you have to specify the type of the new trackers, e.g.
"template" : {
"type" : {
"id" : 5,
"name" : "Requirement"
}
}
To build the fields and links configuration, you have to get the merged/aggregated meta data of all the modules via
GET /doors/{module}/metaData[?options]
where {module} should be the comma-separated list with the ids of all modules.
To get the necessary information about the defined, dedicated, designated, reserved and association fields, as well as association types, of the selected target template, use
POST /project/{projIdOrName}/doors/trackerTemplate
where the request body must be the selected template.
For each module and it's new associated target tracker, only the fields and links, that are relevant for the module, will be used to build the tracker configuration.
The result is a JSON object, that contains the result for each of the specified modules (per module id). Either
- the newly created and associated Tracker, or
- the Exception, that occured upon Tracker creation or configuration
From here on, you have to GET, PUT and DELETE the /tracker/{trackerId}/doors/settings for each tracker individually.
GET /tracker/{trackerId}/doors/import
You must have "Issue - Add" permission on the tracker.
The result is a JSON object with the following information:
{
"tracker" : {
"id" : 139792,
"type" : 5,
"name" : "Pflichtenheft",
"project" : {
"id" : 34,
"name" : "Test"
}
},
"admin" : true,
"server" : {
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
},
"connection" : {
"server" : {
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
},
"username" : "Klaus",
"password" : "***"
},
"module" : {
"id" : "00000020",
"name" : "Pflichtenheft",
"description" : "Ein Test Pflichenheft",
"path" : "/Klaus Test/Pflichtenheft",
"Last Modified On" : 1516292954,
"Last Modified By" : "Klaus",
"lockModule" : true,
"linkObjects" : true,
"baselines" : [ {
"id" : "0.1",
"description" : "Initialer Stand",
"Created On" : 1489143458020,
"Created By" : "Klaus",
"createdAt" : "Mär 10 2017 11:57"
}, {
"id" : "0.2",
"description" : "Zweiter Stand",
"Created On" : 1491820027020,
"Created By" : "Klaus",
"createdAt" : "Apr 10 2017 12:27"
} ],
"lastModifiedAt" : "Jan 18 17:29"
},
"enabled" : true,
"lastImport" : {
"date" : ...
},
"nextSync" : {
"direction" : null,
"date" : null
}
}
Information |
Meaning |
tracker |
Information about the target tracker |
admin |
Whether you have "Tracker - Administration" permission or not. |
server |
Since Codebeamer release 22.10-LTS (GINA): A JSON object with information about the DOORS Bridge. |
connection |
Connection to DOORS Bridge (server, username and password). |
module |
The DOORS module to import from, including the importable baselines (Baselines, that have already been imported, or cannot be imported any more, are not listed here). |
lastImport |
Information about the last import (if any). |
enabled |
Whether importing from the DOORS module into the tracker is enabled (true) or disabled (false). |
nextSync |
Information about the next scheduled import (if any) |
Do a New Import into the Specified Tracker from the Associated DOORS Module - If any
POST /tracker/{trackerId}/doors/import
You must have "Issue - Add" permission on the tracker.
The request body must be a JSON object, where you can specify the optional baseline to import, and whether the baseline should be mirrored by a tracker baseline or not:
{
"baseline" : "0.1",
"mirroring" : true
}
In CB-9.4 and newer, and only when importing the current/head revision of a module, and only, if the module allows to lock the module and link objects, you can optionally request to lock the module and optionally link objects to imported tracker items:
{
"lockModule" : true,
"linkObjects" : true
}
The response body contains statistics about the imported DOORS objects. See the import statistics in the history below.
Get the DOORS Import History of a Tracker
GET /tracker/{trackerId}/doors/history[?options]
Option |
Type |
Required |
Meaning |
trackerId |
int |
Yes |
The Id of the tracker |
page |
int |
No |
The history page to get, starting from 1. The default is 1 (the first page) |
pagesize |
int |
No |
The number of history entries (imports) to return per page. The default is 25. The maximum is 500. |
The response contains the requested page from the DOORS import history of the tracker, e.g.
{
"page" : 1,
"size" : 25,
"total" : 4,
"list" : [ {
"version" : 3,
"date" : "Heute 17:01",
"user" : {
"id" : 1,
"name" : "bond",
"realName" : "Default System Administrator"
},
"sync" : 1,
"baseline" : {
"id" : "0.2",
"date" : 1491820026993
},
"import" : {
"objects" : {
"imported" : 0,
"updated" : 6,
"updatedItems" : [ {
"id" : 7032,
"description" : "<span class='wikiContent'>Das ist ein <b>Beispiel</b>-Pflichtenheft zum Test des erweiterten Excel-Exports<br />\n<br /></span>",
"remote" : {
"id" : 16
},
"changes" : [ {
"fieldId" : 2,
"fieldName" : "Relevanz",
"oldValue" : "--",
"newValue" : "Wäre schön"
}, {
"fieldId" : 7,
"fieldName" : "Status",
"oldValue" : "--",
"newValue" : "Entwurf"
}, {
"fieldId" : 90,
"fieldName" : "Kommentar",
"op" : "Add",
"newValue" : "Weitere"
} ]
},
...
],
"deleted" : 0,
"failed" : 0
},
"history" : {
"imported" : 21,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"links" : {
"imported" : 1,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"baselines" : {
"imported" : 1,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
}
},
}, {
"version" : 2,
"date" : "Heute 17:00",
"user" : {
"id" : 1,
"name" : "bond",
"realName" : "Default System Administrator"
},
"sync" : 1,
"baseline" : {
"id" : "0.1",
"date" : 1489143458006
},
"import" : {
"objects" : {
"imported" : 13,
"updated" : 0,
"deleted" : 0,
"failed" : 0
},
"history" : {
"imported" : 39,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"discussions" : {
"imported" : 2,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"comments" : {
"imported" : 4,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"attachments" : {
"imported" : 5,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
},
"baselines" : {
"imported" : 1,
"updated" : 0,
"deleted" : 0,
"failed" : 0,
"empty" : false
}
},
} ]
}
The history is in descending order. The first page contains the last/newest import information.
The statistics about the first/initial/full import only contain numbers.
The statistics about incremental imports also contain information about newly imported items and updated items including changes per field.
GET /project/{projIdOrName}/doors/trackerTemplate
Option |
Type |
Required |
Meaning |
projIdOrName |
String |
Yes |
The Id or Name of the Codebeamer project, where to create new trackers |
You must be a Tracker Administrator in the specified project.
The response body contains the possible types and the possible templates for DOORS import target trackers:
{
"types" : [ ... ],
"templates" : [ ... ]
}
POST /project/{projIdOrName}/doors/trackerTemplate
You must be a Tracker Administrator in the specified project.
The request body must contain a JSON object, that is either the template tracker to use, or defines the tracker type to use, e.g.
{
"type" : {
"id" : 5,
"name" : "Requirement"
}
}
The result is a JSON object with information about the specified template tracker or a tracker of the specified type:
{
"enabled" : true,
"userAdmin" : true,
"objectFields" : [ ... ],
"reservedFields" : [ ... ],
"dedicatedField" : { ... },
"designatedField" : { ... },
"assocTypes" : [ ... ],
"linkFields" : [ ... ]
}
Information |
Meaning |
enabled |
Whether importing from DOORS into the tracker is enabled (true) or disabled (false). |
userAdmin |
Whether you have "User - Admin" permission (necessary in order to import DOORS users as Codebeamer users) or not |
objectFields |
An array of those tracker fields, that can be associated as targets for the import of DOORS module attributes, e.g.
"objectFields" : [ {
"id" : 2,
"property" : "namedPriority",
"name" : "Business Value",
"label" : "Business Value",
"type" : 6,
"required" : false,
"multiple" : false,
"options" : [ {
"id" : 5,
"name" : "Nice to have",
"label" : "Nice to have",
"flags" : 0
}, {
"id" : 3,
"name" : "Should have",
"label" : "Should have",
"flags" : 0
}, {
"id" : 1,
"name" : "Must have",
"label" : "Must have",
"flags" : 0
} ]
}, {
"id" : 7,
"property" : "status",
"name" : "Status",
"label" : "Status",
"type" : 6,
"required" : false,
"multiple" : false,
"options" : [ {
"id" : 1,
"name" : "New",
"label" : "New",
"flags" : 0
}, {
"id" : 2,
"name" : "Draft",
"label" : "Draft",
"flags" : 64
}, {
"id" : 3,
"name" : "Waiting for approval",
"label" : "Waiting for approval",
"flags" : 4,
"style" : "#00a85d"
}, {
"id" : 4,
"name" : "Rejected",
"label" : "Rejected",
"flags" : 16,
"style" : "#ababab"
}, {
"id" : 5,
"name" : "Accepted",
"label" : "Accepted",
"flags" : 16
} ]
},
...
] |
reservedFields |
An array of those tracker fields, that cannot be associated with DOORS module attributes, but whose names cannot be used for new custom target fields |
dedicatedField |
Information about those tracker fields, that can only be associated with dedicated DOORS module attributes, or not at all
"dedicatedField" : {
"ForeignID" : [ "id" ],
"88" : [ "attachments" ],
"AttachmentsOnly" : [ "attachments" ],
"90" : [ "discussions" ],
"Comments" : [ "discussions" ],
"30" : [ "history" ],
"History" : [ "history" ],
"4" : [ "Created On" ],
"ForeignCreatedOn" : [ "Created On" ],
"6" : [ "Created By" ],
"ForeignCreatedBy" : [ "Created By" ],
"ForeignCreatedThru" : [ "Created Thru" ],
"74" : [ "Last Modified On" ],
"ForeignModifiedOn" : [ "Last Modified On" ],
"75" : [ "Last Modified By" ],
"ForeignModifiedBy" : [ "Last Modified By" ]
}
The dedicatedField key is the id or name of a tracker field, and the value is an array of the DOORS attribute names, where this field is dedicated for. |
designatedField |
Information about designated custom fields, that should be offered as possible target fields, even if no such objectField exists yet.
"designatedField" : {
"id" : {
"name" : "ForeignID",
"label" : "Foreign ID",
"description" : "The original DOORS Object Id",
"type" : 1
},
"attachments" : {
"id" : 88,
"property" : "attachments",
"name" : "AttachmentsOnly",
"label" : "Attachments",
"type" : 7,
"refType" : 5,
"refQuali" : [ "attachment" ],
"multiple" : true
},
"discussions" : {
"id" : 90,
"name" : "Comments",
"label" : "Comments",
"type" : 7,
"refType" : 5,
"refQuali" : [ "comment" ],
"multiple" : true
},
"history" : {
"id" : 30,
"property" : "milestones",
"name" : "History",
"label" : "History",
"type" : 7,
"refType" : 5,
"refQuali" : [ "change" ],
"multiple" : true
},
"Created On" : {
"name" : "ForeignCreatedOn",
"label" : "Foreign Created at",
"type" : 3
},
"Created By" : {
"name" : "ForeignCreatedBy",
"label" : "Foreign Created by",
"type" : 0,
"of" : {
"type" : 5,
"memberType" : 2
}
},
"Created Thru" : {
"name" : "ForeignCreatedThru",
"label" : "Foreign Created thru",
"type" : 6,
"options" : [ {
"name" : "Manual Input",
"label" : "Manual Input",
"flags" : 0
}, {
"name" : "Extracting",
"label" : "Extracting",
"flags" : 0
}, {
"name" : "Copying",
"label" : "Copying",
"flags" : 0
} ]
},
"Last Modified On" : {
"name" : "ForeignModifiedOn",
"label" : "Foreign Modified at",
"type" : 3
},
"Last Modified By" : {
"name" : "ForeignModifiedBy",
"label" : "Foreign Modified by",
"type" : 0,
"of" : {
"type" : 5,
"memberType" : 2
}
}
}
The designatedField key is the name of the DOORS attribute, and the value is the definition of the designated custom tracker field. |
assocTypes |
An array of the Codebeamer association types, that can be associated as DOORS link type target.
"assocTypes" : [ {
"id" : 1,
"name" : "depends"
}, {
"id" : 2,
"name" : "superordinate to"
}, {
"id" : 3,
"name" : "subordinate to"
}, {
"id" : 4,
"name" : "related"
}, {
"id" : 5,
"name" : "derived"
}, {
"id" : 6,
"name" : "violates"
}, {
"id" : 7,
"name" : "excludes"
}, {
"id" : 8,
"name" : "invalidates"
}, {
"id" : 9,
"name" : "copy of"
} ] |
linkFields |
An array of the predefined Codebeamer association fields, that can be associated as DOORS link attribute target.
"linkFields" : [ {
"id" : 4,
"property" : "submittedAt",
"name" : "Created at",
"label" : "Created at",
"type" : 3
}, {
"id" : 6,
"property" : "submitter",
"name" : "Created by",
"label" : "Created by",
"type" : 5,
"memberType" : 2
}, {
"id" : 74,
"property" : "modifiedAt",
"name" : "Modified at",
"label" : "Modified at",
"type" : 3
}, {
"id" : 75,
"property" : "modifier",
"name" : "Modified by",
"label" : "Modified by",
"type" : 5,
"memberType" : 2
}, {
"id" : 10000,
"property" : "customField[0]",
"name" : "Propagate suspects",
"label" : "Propagate suspects",
"description" : "Should this association be marked 'Suspected' whenever the association target is modified?",
"type" : 4
}, {
"id" : 10001,
"property" : "customField[1]",
"name" : "Suspected",
"label" : "Suspected",
"description" : "Has the association target been modified since creating/resetting this association?",
"type" : 4
}, {
"id" : 85,
"property" : "flags",
"name" : "Deleted",
"label" : "Deleted",
"type" : 1
} ] |
Get the Project Associated with the Specified DOORS Project or Folder
In Codebeamer release 22.04 (FELICTY) and older:
GET /doors/{projectOrFolder}/project[?options]
Since Codebeamer release 22.10-LTS (GINA):
GET /doors/bridge/{bridgeId}/folder/{projectOrFolder}/project[?options]
Option |
Type |
Required |
Meaning |
bridgeId |
int |
Yes |
The ID of the DOORS Bridge instance to which the projectOrFolder belongs.
The calling user must have access to the specified /doors/bridge/{bridgeId} or the bridge must be public.
|
projectOrFolder |
String |
Yes |
The Id of the DOORS project or folder, whose associated project to get, e.g. "000000a0". |
proj_id |
int |
No |
An optional Codebeamer project id, to check, if the specified DOORS project or folder can be associated with this project. |
The result is information about the associated Codebeamer project, or null, if the specified DOORS project or folder is not associated with any project.
Get the DOORS Project or Folder Associated with the Specified Project
GET /project/{projIdOrName}/doors/settings
Option |
Type |
Required |
Meaning |
projIdOrName |
String |
Yes |
The Id or the name of the Codebeamer project, whose associated DOORS project or folder to get |
You must be a Project Administrator, in order to get this information.
The result is a JSON object with information about the currently associated DOORS project or folder (if any):
{
"server" : {
"id" : 12345,
"server" : "http://my-doors-bridge:9090/db",
"description" : "DOORS 9.7 Bridge",
"public" : true
},
"username" : "Klaus",
"password" : "**",
"module" : {
"id" : "000000a1",
"type" : 2,
"name" : "Raw_Project_2",
"description" : "Just technical testing",
"path" : "/Mechatronics/Raw_Project_2"
}
}
"module" is the associated DOORS project or folder (and not a module).
Set the DOORS Project or Folder Associated with the Specified Project
PUT /project/{projIdOrName}/doors/settings
You must be a Project Administrator, in order to do this.
The request body must be a JSON object (see above).
In Codebeamer release 22.04 (FELICITY) and older:
GET /doors/{projectOrFolder}/baselineSets/project/{projIdOrName}[?options]
GET /project/{projIdOrName}/doors/{projectOrFolder}/baselineSets[?options]
Since Codebeamer release 22.10-LTS (GINA):
GET /doors/bridge/{bridgeId}/folder/{projectOrFolder}/baselineSets/project/{projIdOrName}[?options]
GET /project/{projIdOrName}/doors/bridge/{bridgeId}/folder/{projectOrFolder}/baselineSets[?options]
Option |
Type |
Required |
Meaning |
bridgeId |
int |
Codebeamer release 22.10-LTS (GINA). |
The ID of the DOORS Bridge instance, to which the projectOrFolder belongs.
The calling user must have access to the specified /doors/bridge/{bridgeId} or the bridge must be public.
|
server |
String |
Codebeamer release 22.04 (FELICITY). |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
projectOrFolder |
String |
Yes |
The Id of the DOORS project or folder, whose defined baseline sets to import |
projIdOrName |
String |
Yes |
The Id or the name of the Codebeamer project, where to import the baseline sets, defined on the specified DOORS project/folder |
You must be a Tracker Administrator in the specified project.
E.g.
GET /project/Test/doors/bridge/12345/folder/000000a1/baselineSets?username=...&password=...
The response contains a JSON object with the following information:
{
"project" : {
"id" : 34,
"name" : "Test"
},
"trackers" : [ ... ],
"baselineSets" : [ {
"id" : "1.0.A-Sample",
"description" : "",
"Created On" : 1511964226905,
"Created By" : "Administrator",
"baselines" : {
"00000580" : "1.0.A-Sample",
"00000581" : "1.0.A-Sample"
},
"definition" : {
"name" : "BLSD_0",
"description" : "script generated set definition for 'A-Sample'"
},
"date" : 1511964895905,
"createdAt" : "Nov 29 2017 15:03",
"status" : "importable"
}, {
"id" : "1.0.B-Sample",
"description" : "",
"Created On" : 1511964240905,
"Created By" : "Administrator",
"baselines" : {
"00000580" : "2.0.B-Sample",
"00000581" : "2.0.B-Sample"
},
"definition" : {
"name" : "BLSD_1",
"description" : "script generated set definition for 'B-Sample'"
},
"date" : 1511965078905,
"createdAt" : "Nov 29 2017 15:04",
"status" : "importable"
}, {
"id" : "1.0.C-Sample",
"description" : "Administrator created set @ 29.11.2017 15:04:03",
"Created On" : 1511964249905,
"Created By" : "Administrator",
"baselines" : {
"00000580" : "3.0.C-Sample"
},
"definition" : {
"name" : "BLSD_2",
"description" : "script generated set definition for 'C-Sample'"
},
"date" : 1517317172905,
"createdAt" : "Nov 29 2017 15:04",
"status" : "importable"
}, {
"id" : "HEAD",
"Created By" : "System",
"Created On" : 1519123868444,
"baselines" : {
"00000580" : null,
"00000581" : null
},
"date" : 9223372036854775807,
"definition" : {
"name" : "Projekt/Ordner",
"description" : "Dies ist eine automatisch generierte Pseudo-Baselinegruppen-Definition, die alle (formalen) Module in dem ausgewählten DOORS Projekt/Ordner umfasst."
},
"description" : "Die aktuellen Versionen aller (formalen) Module in dem ausgewählten DOORS Projekt/Ordner",
"createdAt" : "Jetzt",
"status" : "importable"
} ],
"modules" : {
"00000580" : {
"id" : "00000580",
"name" : "RS",
"path" : "/Mechatronics/Raw_Project_2/RS",
"tracker" : {
"id" : 139791,
"type" : 5,
"name" : "Lastenheft",
"project" : {
"id" : 34,
"name" : "Test"
}
}
},
"00000581" : {
"id" : "00000581",
"name" : "TD",
"path" : "/Mechatronics/Raw_Project_2/TD"
}
}
}
Information |
Meaning |
project |
The id and name of the project |
trackers |
An array of project trackers, that can be possible DOORS import targets, but have not been associated with DOORS modules yet. |
baselineSets |
An array of DOORS baseline sets (ordered by date) |
modules |
A JSON object serving as lookup map for all the modules, that are referred to in the Baseline Sets |
The information about each Baseline Set: |
definition |
Name and description of the baseline set definition |
baselines |
A JSON object specifying the Baseline/Version Ids of all the Modules contained in this baseline set (per Module Id). |
date |
The anchor/reference date of this baseline set: This is the latest Created On of the baseline set or any of it's included baselines. |
status |
The import status of this baseline set
- importable
- imported
- blocked
|
blockers |
Only for baseline sets, whose status is blocked: A JSON object specifying the Baseline/Version Ids of all the Modules, that block the import of this baseline set. |
imported |
Only for baseline sets, whose status is imported: Information about the import |
mapping |
Only for baseline sets, whose status is imported: A JSON object specifying the mapping of DOORS module (id) to target Codebeamer tracker, at the time of the import |
Please note: Codebeamer automatically adds a pseudo baseline set "Projekt/Ordner - HEAD" to the baselineSets, whose baselines are the current/head revisions of all modules in the DOORS project/folder recursively, whether or not these modules are also included in "real" DOORS baseline sets, or there are no DOORS baseline sets at all.
POST /doors/baselineSets
The request body must be a JSON object containing:
- server
- In Codebeamer release 22.04 (FELICITY) and older: The (hostname, ip-address and port) of the DOORS Bridge server.
- Since Codebeamer release 22.10-LTS (GINA): A JSON object with at least the id of the DOORS Bridge.
- username
- password
- baselineSets an array of the baseline sets to import (should be a subset of the importable baseline sets returned from the previous request)
The result is an array of the importable baseline sets, each containing an array of the modules, that are associated with target trackers, and where baselines have to be imported.
Please note: Modules that are not associated with target trackers, or that have already been imported beyond the baseline/version in the baseline set, will be ignored!
E.g. When asking for the import steps for the baselineSets returned by the previous example, that each contained two modules, but where only one module (id="00000580") was associated with a tracker, and the other module (id="00000581") was not, then only the module with id="00000580" will be imported:
[ {
"id" : "1.0.A-Sample",
"description" : "",
"Created On" : 1511964220,
"Created By" : "Administrator",
"definition" : {
"name" : "BLSD_0",
"description" : "script generated set definition for 'A-Sample'"
},
"date" : 1511964291910,
"modules" : [ {
"id" : "00000580",
"name" : "RS",
"description" : null,
"path" : "/Mechatronics/Raw_Project_2/RS",
"Last Modified On" : 1517471990,
"Last Modified By" : "Administrator",
"baselines" : [ {
"id" : "1.0.A-Sample",
"description" : "",
"Created On" : 1511964291910,
"Created By" : "Administrator",
"createdAt" : "Nov 29 2017 15:04"
} ],
"lastModifiedAt" : "Feb 01 08:59",
"tracker" : {
"id" : 139791,
"type" : 5,
"name" : "Lastenheft",
"project" : {
"id" : 34,
"name" : "Test"
}
}
} ]
}, {
"id" : "1.0.B-Sample",
"description" : "",
"Created On" : 1511964234,
"Created By" : "Administrator",
"definition" : {
"name" : "BLSD_1",
"description" : "script generated set definition for 'B-Sample'"
},
"date" : 1511965064910,
"modules" : [ {
"id" : "00000580",
"name" : "RS",
"description" : null,
"path" : "/Mechatronics/Raw_Project_2/RS",
"Last Modified On" : 1517471990,
"Last Modified By" : "Administrator",
"baselines" : [ {
"id" : "2.0.B-Sample",
"description" : "",
"Created On" : 1511965064910,
"Created By" : "Administrator",
"createdAt" : "Nov 29 2017 15:17"
} ],
"lastModifiedAt" : "Feb 01 08:59",
"tracker" : {
"id" : 139791,
"type" : 5,
"name" : "Lastenheft",
"project" : {
"id" : 34,
"name" : "Test"
}
},
"newerThan" : 1511964291910
} ]
}, {
"id" : "1.0.C-Sample",
"description" : "Administrator created set @ 29.11.2017 15:04:03:\nC sample comment\n",
"Created On" : 1511964243,
"Created By" : "Administrator",
"definition" : {
"name" : "BLSD_2",
"description" : "script generated set definition for 'C-Sample'"
},
"date" : 1517317172910,
"modules" : [ {
"id" : "00000580",
"name" : "RS",
"description" : null,
"path" : "/Mechatronics/Raw_Project_2/RS",
"Last Modified On" : 1517471990,
"Last Modified By" : "Administrator",
"baselines" : [ {
"id" : "3.0.C-Sample",
"description" : "Administrator created set @ 29.11.2017 15:04:03:\nC sample comment\n",
"Created On" : 1517317172910,
"Created By" : "Administrator",
"createdAt" : "Jan 30 13:59"
} ],
"lastModifiedAt" : "Feb 01 08:59",
"tracker" : {
"id" : 139791,
"type" : 5,
"name" : "Lastenheft",
"project" : {
"id" : 34,
"name" : "Test"
}
},
"newerThan" : 1511965064910
} ]
} ]
GET {DB}/module/{id}/objects[?options]
POST {DB}/module/{id}/objects
Option |
Type |
Required |
Meaning |
id |
string |
Yes |
The id of the formal module, whose objects/content to get |
baseline |
string |
No |
The (version) id of a module baseline, to get the objects in that baseline.
Default is null, which gets the objects for the current module revision. |
attributes |
string |
No |
The comma-separated list with the names of the object attributes to return.
The default/implicit object attributes are always returned, but all other attributes must be requested explicitly here.
There are also some special options, that must be specified as (pseudo) attributes:
Option |
Meaning |
users |
Whether additional information about all (distinct) users, that are referenced in the returned objects, should be returned, e.g.
"users" : [ {
"id" : "0000000000000002",
"name" : "Klaus",
"fullName" : "Klaus Mehling",
"email" : "klaus.mehling@intland.com"
} ] |
preview |
If present (and no attachmentsare requested), then OLE objects, embedded in DOORS rich text, will only be represented by a preview image link in the converted Wiki markup, e.g.
text" : "[{Image src='DP2/O18-T1-1.png' }]\\\\
Ambulanz\\\\
@Copyright __Intland Software Gmbh__ 2017, ''All rights reseved''\\\\
\\\\
"
The[{Image src='..'}]
refers to the relative image URN.
To download the preview image via the REST-API, you have to expand this URN into the full REST-API attachment URL: {DB}/attachment/{URN} , e.g.
GET {DB}/attachment/DP2/O18-T1-1.png |
attachments |
If present, then OLE objects, embedded in DOORS rich text, will be extracted and returned as separate object attachments, e.g.
"attachments" : {
"1-1.doc" : "DP2/O18-T1-1.doc",
"1-1.png" : "DP2/O18-T1-1.png"
}
For embedded OLE objects, that are not themselves images, e.g. 1-1.doc, also an extra preview image will be provided as an additional attachment, e.g. 1-1.png.
The attachment key is the attachment name, the attachment value is the attachment URN.
To download attachments, you have to expand the attachment URN into the full REST-API attachment URL: {DB}/attachment/{URN} , e.g.
GET {DB}/attachment/DP2/O18-T1-1.doc
In the Wiki markup, the location of the embedded OLE object, will be replaced with a link of the form [<attachment name>|!<preview image>!], where <attachment name> and <preview image> are the names of the appropriate object attachments, e.g.
"text" : "[1-1.doc|!1-1.png!]\\\\
Ambulanz\\\\
@Copyright __Intland Software Gmbh__ 2017, ''All rights reseved''\\\\
\\\\
" |
discussions |
If present, then also the object discussions and comments will be returned, e.g.
"discussions" : [ {
"name" : "Improvements",
"status" : "Open",
"Created On" : 1488296724,
"Created By" : "Klaus",
"comments" : [ {
"date" : 1488296724,
"author" : "Klaus",
"text" : "Yes, but via Wiki markup, not RTF !"
}, {
"date" : 1488297333,
"author" : "Klaus",
"text" : "Do we support Rich Text ?"
} ]
} ] |
history |
If present, then also the history about changes of the implicit/default and the explicitly requested object attributes is returned, e.g.
"history" : [ {
"date" : 1487244491,
"author" : "Klaus",
"action" : "createObject"
}, {
"date" : 1487331196,
"author" : "Klaus",
"action" : "modifyObject",
"attribute" : "text",
"old" : "Das ist ein __Beispiel__-Pflichtenheft ...\\\\
\\\\
",
"new" : "Das ist ein __Beispiel__-Pflichtenheft zum Test des erweiterten Excel-Exports\\\\
\\\\
"
} ] |
outline |
If you specify a modifiedAfter timestamp (see below), then only objects created or modified after this point in time should be returned.
But DOORS does not change the Last Modified On timestamp, if you modify object links or move objects to other positions. Especially not for objects in between the old and the new position of the moved object.
By requesting an outline, DOORS Bridge will return all objects in the module in proper order, and with their proper parent and position.
But for objects, whose Last Modified On timestamp is before modifiedAfter, only the limited outline information will be returned, e.g.
{
"id" : 17,
"type" : 2,
"pid" : 13,
"pos" : 1,
"outline" : true
}, |
baseline |
This works like outline above, but forces to return full information about all objects, even if their Last Modified On timestamp is before modifiedAfter.
Only use baseline instead of outline, if you do not trust the history of the DOORS module! |
|
links |
string |
No |
The semicolon-separated list of the object links to return: <link type>[:<attributes>][;...]
- <link type> is the id of the link type
- <attributes> is the comma-separated list with the names of the link attributes to return
e.g.
links=00000022:Created By,Created On,Last Modified By,Last Modified On;External:Created By,Created On,Last Modified By,Last Modified On
You do not have to specify the attributes
- Created By
- Created On
- Last Modified By
- Last Modified On
for the link types, if you have already specified them in the object attributes, e.g.
?attributes=Created By,Created On,Last Modified By,Last Modified On
&links=00000022;External
To return object links of any type, with Created By, Created On, Last Modified By and Last Modified Onaccording to the objects, and with no link specific attributes, you can also simply say:
links=* |
limit |
int |
No |
If specified, only return the first limit objects in the module. Deleted objects do not count and DOORS tables only count as 1 (table rows and cells do not count).
limit is typically used in conjunction with preview, e.g.
GET {DB}/module/00000020/objects?baseline=0.2&attributes=preview&limit=50 |
modifiedAfter |
string |
No |
A timestamp in the format yyyy-MM-dd HH:mm:ss. If specified, only objects created or modified after this point in time should be returned (see also outline above). |
For a GET request, the options must be passed as request parameters.
For a POST request, the options must be passed as a JSON object in the request body.
The response contains the module id, name, description, prefix and (DOORS Bridge 1.6 and newer) whether the module is actually locked, or if the user has permission to lock and modify the module, plus:
Information |
Content |
baseline |
Information about the requested baseline (if any) |
attributes |
Information about the requested attributes and their type. Default/implicit attributes need not be requested and are also not listed here. |
linkTypes |
Information about the requested link types and their requested attributes (plus attribute type). |
users |
An array of all (distinct) users, that are referenced in the returned objects. Only present, if users were explicitly requested (see above). |
objects |
An array with all objects in the specified module and baseline (if any), in proper order.
The type of an object is:
Type |
Meaning |
1 |
Requirement |
2 |
Heading/Folder |
3 |
DOORS Table |
4 |
DOORS Table Row |
5 |
DOORS Table Cell |
If modifiedAfter was specified, only objects created or modified after this point in time will be included, except outline or baseline was also specified: then all objects in the module are listed, but for objects, whose Last Modified On timestamp is before modifiedAfter, only the limited outline information will be present. |
E.g.
GET {DB}/module/00000020/objects?baseline=0.1&attributes=Created On,Created By,Last Modified On,Last Modified By,Status,users,attachments,discussions,history&links= 00000022;External
{
"id" : "00000020",
"name" : "Pflichtenheft",
"description" : "Ein Test Pflichenheft",
"prefix" : "PFL-",
"Created On" : 1487199600,
"Created By" : "Klaus",
"lock" : true,
"modify" : true,
"baseline" : {
"id" : "0.1",
"description" : "Initialer Stand",
"Created On" : 1489143451,
"Created By" : "Klaus"
},
"attributes" : {
"Created By" : 5,
"Created On" : 3,
"Last Modified By" : 5,
"Last Modified On" : 3,
"Status" : 6
},
"linkTypes" : {
"00000022" : {
"Created By" : 5,
"Created On" : 3,
"Last Modified By" : 5,
"Last Modified On" : 3
},
"External" : {
"Created By" : 5,
"Created On" : 3,
"Last Modified By" : 5,
"Last Modified On" : 3
}
},
"users" : [ {
"id" : "0000000000000002",
"name" : "Klaus",
"fullName" : "Klaus Mehling",
"email" : "klaus.mehling@intland.com"
} ],
"objects" : [ {
...
}, {
"id" : 16,
"type" : 1,
"pid" : 12,
"text" : "Das ist ein __Beispiel__-Pflichtenheft zum Test des erweiterten Excel-Exports\\\\
\\\\
",
"Created By" : "Klaus",
"Created On" : 1487199600,
"Last Modified By" : "Klaus",
"Last Modified On" : 1487331196,
"discussions" : [ {
"name" : "Improvements",
"status" : "Open",
"Created On" : 1488296724,
"Created By" : "Klaus",
"Last Modified On" : 1488297333,
"Last Modified By" : "Klaus",
"comments" : [ {
"date" : 1488296724,
"author" : "Klaus",
"text" : "Yes, but via Wiki markup, not RTF !"
}, {
"date" : 1488297333,
"author" : "Klaus",
"text" : "Do we support Rich Text ?"
} ]
} ],
"history" : [ {
"date" : 1487244491,
"author" : "Klaus",
"action" : "createObject"
}, {
"date" : 1487331196,
"author" : "Klaus",
"action" : "modifyObject",
"attribute" : "text",
"old" : "Das ist ein __Beispiel__-Pflichtenheft ...\\\\
\\\\
",
"new" : "Das ist ein __Beispiel__-Pflichtenheft zum Test des erweiterten Excel-Exports\\\\
\\\\
"
} ]
}, {
"id" : 18,
"type" : 1,
"pid" : 17,
"text" : "[1-1.doc|!1-1.png!]\\\\
@Copyright __Intland Software Gmbh__ 2017, ''All rights reseved''\\\\
",
"Created By" : "Klaus",
"Created On" : 1487199600,
"Last Modified By" : "Klaus",
"Last Modified On" : 1488899013,
"history" : [ {
"date" : 1487244775,
"author" : "Klaus",
"action" : "createObject"
}, {
"date" : 1488899013,
"author" : "Klaus",
"action" : "modifyObject",
"attribute" : "text",
"old" : "\\\\
\\\\
@Copyright __Intland Software Gmbh__ 2017, ''All rights reseved''\\\\
",
"new" : "\\\\
@Copyright __Intland Software Gmbh__ 2017, ''All rights reseved''\\\\
"
} ],
"attachments" : {
"1-1.doc" : "DP7/O18-T1-1.doc",
"1-1.png" : "DP7/O18-T1-1.png"
}
}, {
...
} ]
}
Known Problems
- Attribute names containing leading or trailing whitespace
- In DOORS Bridge build 63 or newer
- Attribute names containing leading or trailing whitespace are handled correctly, but when specifying attributes as comma-separated list, no extra whitespace must be added around commas
- In DOORS Bridge build 62 or newer
- Attributes, whose name contains leading or trailing whitespace will never be returned, because attribute names will get trimmed
- In order to fix this, you must remove the leading and/or trailing whitespace in the DOORS attribute name
In Codebeamer release 22.04 (FELICTY) and older:
GET /doors/{projectOrFolder}/baselineSets/steps[?options]
Since Codebeamer release 22.10-LTS (GINA):
GET /doors/bridge/{bridgeId}/folder/{projectOrFolder}/baselineSets/steps[?options]
Option |
Type |
Required |
Meaning |
bridgeId |
int |
Codebeamer release 22.10-LTS (GINA). |
The ID of the DOORS Bridge instance to which the projectOrFolder belongs.
The calling user must have access to the specified /doors/bridge/{bridgeId} or the bridge must be public.
|
server |
String |
Codebeamer release 22.04 (FELICITY). |
The (hostname, ip-address and port) of the DOORS Bridge server, e.g. "http://my-doors-bridge:9090/db". |
username |
String |
Yes |
The DOORS username, to login at the underlying DOORS instance. This DOORS user must have Edit DXL (in batch mode) permission. |
password |
String |
Yes |
The DOORS password, to authenticate the specified DOORS user. |
projectOrFolder |
String |
Yes |
The Id of the DOORS project or folder, whose defined baseline sets to import |
This gets information about the necessary steps to import all importable baseline sets defined on the specified DOORS project or folder into thecurrently associated target trackers of the modules included in those baseline sets.
If you need to verify the module tracker mappings/configurations first or select individual baseline sets to import, then you should first
- GET /doors/bridge/{bridgeId}/folder/{projectOrFolder}/baselineSets/project/{projIdOrName}[?options]
then check module mappings and then
Import One or More Baseline Sets
POST /project/{projIdOrName}/doors/baselineSets
Option |
Type |
Required |
Meaning |
projIdOrName |
String |
Yes |
The Id or Name of the Codebeamer project, where to import the baseline sets |
You must be a Tracker Administrator in the specified project.
The request body must contain either a single baseline set (JSON object) or an array of baseline sets, as returned from
- GET /doors/bridge/{bridgeId}/folder{projectOrFolder}/baselineSets/steps[?options] or
- POST /doors/baselineSets
|
|