Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.roboticks.io/llms.txt

Use this file to discover all available pages before exploring further.

IBM DOORS

IBM has two products with the DOORS name. Roboticks integrates with both, but they have different ReqIF workflows.
DOORS Classic (9.x)DOORS Next
ReqIF supportVia the ReqIF Studio companion toolNative (per module)
Export mechanismOpen module → ReqIF Studio pluginOSLC API or web export
RecommendedUse ReqIF Studio for round-tripUse native ReqIF
Roboticks integrationSame connector, different upload stepSame connector, native upload

Connector type and pricing

TypeBYO requirements connector
TierTeam (3 BYO connectors included), Enterprise (bundled)
Price$149 / connector / month above the Team allowance
You bring the DOORS license. Roboticks talks ReqIF only.

DOORS Classic workflow

DOORS Classic has no first-party ReqIF support. The community-standard path is IBM Rational ReqIF Studio (sometimes shipped as DOORS-RIF), which exports modules to ReqIF and imports them back.

Setup

1

Install ReqIF Studio

Get it from your IBM Passport Advantage portal. It’s a Windows-only Eclipse-based tool.
2

Export a module

Open the DOORS module in ReqIF Studio → Export → ReqIF. Save the .reqif file. For modules with embedded OLE objects (rare in modern DOORS use), the export also produces a .reqifz zip.
3

Upload to Roboticks

rbtk requirements upload module-export.reqif \
  --mode update \
  --field-map roboticks/doors-classic-mapping.yaml
4

Export back and re-import via ReqIF Studio

rbtk requirements export --format reqif --with-coverage --out roboticks-export.reqif
Open the exported file in ReqIF Studio → Import → Merge into module.

DOORS Classic field mapping

# roboticks/doors-classic-mapping.yaml
workitem_types:
  Requirement: functional
  "Safety Requirement": safety
fields:
  "Absolute Number": id
  "Object Heading":  title
  "Object Text":     text
  "Compliance":      compliance
  "Verification Method": verification_method
link_modules:
  "Satisfied By":   confirmed_by
  "Derived From":   derives_from

DOORS Next workflow

DOORS Next has native ReqIF — you can export from the web UI or via the OSLC REST API.

Setup

1

Add the connector in Roboticks

Settings → Integrations → Requirements → Add → DOORS Next.
2

Get an OSLC export URL

In DOORS Next: open the module → Configurations → Stream → Export → ReqIF → API URL.
3

Author a DOORS Next field mapping

# roboticks/doors-next-mapping.yaml
workitem_types:
  "http://open-services.net/ns/rm#Requirement": functional
  "http://acme.com/doors-next/types/safetyreq": safety
fields:
  "dcterms:identifier": id
  "dcterms:title":      title
  "dcterms:description": text
  "rm:asilPL":          asil_pl

CI recipe (DOORS Next)

# .github/workflows/doors-next-sync.yml
name: DOORS Next sync
on:
  schedule: [{ cron: "0 5 * * *" }]
  workflow_dispatch:

jobs:
  sync:
    runs-on: ubuntu-latest
    permissions: { id-token: write, contents: read }
    steps:
      - uses: actions/checkout@v4

      - name: Pull DOORS Next ReqIF export
        run: |
          curl -fsSL \
            -u "${{ secrets.DOORS_USER }}:${{ secrets.DOORS_TOKEN }}" \
            -H "Accept: application/x-oslc-cm-change-request+xml" \
            "https://doors.acme.com/rm/oslc/resources/rqm/module/4711.reqif" \
            -o doors-export.reqif

      - run: pipx install roboticks-cli
      - run: rbtk auth oidc-from-github
      - run: |
          rbtk requirements upload doors-export.reqif \
            --mode update \
            --field-map roboticks/doors-next-mapping.yaml

      - run: |
          rbtk requirements export \
            --format reqif --with-coverage \
            --out roboticks-export.reqif

      - name: Push back to DOORS Next
        run: |
          curl -fsSL \
            -u "${{ secrets.DOORS_USER }}:${{ secrets.DOORS_TOKEN }}" \
            -X POST -F "file=@roboticks-export.reqif" \
            "https://doors.acme.com/rm/oslc/imports/4711"

DOORS-specific quirks

Object IDs vs Absolute Numbers

DOORS Classic distinguishes the human-friendly Object Identifier (e.g., REQ-001) from the immutable Absolute Number. Use Absolute Number as id for stable round-trip; surface Object Identifier as a separate field if humans expect to see it.

OLE objects in DOORS Classic

If your DOORS modules embed Word/Excel objects in Object Text, ReqIF Studio extracts them as attachments inside the .reqifz bundle. Roboticks ingests the bundle, stores attachments, and surfaces them in the requirement detail view — but they’re not searchable text.

DOORS Next configurations

DOORS Next has a Streams-and-Baselines configuration management model. Always export from a named stream (not the default), and pass the stream’s name as --baseline to Roboticks so the configuration round-trips:
rbtk requirements upload doors-export.reqif --baseline "ARM Controller Mainline"
DOORS Classic models links via separate Link Modules (one per relationship type). DOORS Next uses typed links inline. The field mapping handles both via the link_modules / link_roles keys.

Round-trip caveats

Object Text is rich-text DOORS DXL. ReqIF Studio converts to XHTML; Roboticks converts to Markdown for storage and back to XHTML on export. Headings, lists, bold/italic, links survive. Tables, embedded objects, in-line images don’t round-trip cleanly.
Always pin to a baseline for round-trip. Working off the mutable default stream means the ID-to-content mapping can shift mid-sync.
If your DOORS module is augmented by DXL scripts post-import (e.g., auto-numbering), run them after the Roboticks re-import or wire the script to the import event.

Validation

# Count check
rbtk requirements list --output ids | wc -l
# Compare against DOORS module's Total Object Count

Troubleshooting

Modules over ~5000 objects strain the Eclipse heap. Edit ReqIFStudio.ini: -Xmx8g. Or split the module via DOORS view filters and export in chunks.
Use a Functional ID (technical user) — interactive sessions expire and SSO redirects break the API call. The connection’s Connection ID is configured in DOORS Next → Admin → Functional IDs.

Next

Polarion

The other big mature RM tool.

rbtk requirements

Upload, coverage, export.