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.
Jama Connect
Roboticks integrates with Jama Connect through two paths:- Direct sync via the BYO connector framework (v1) — Roboticks polls Jama’s REST API on a schedule (cloud sync) or rbtk does it from inside your network (CLI push). Items, relationships, and tags land in the traceability matrix continuously.
- ReqIF round-trip (free, always supported) — for snapshot-style audits or one-shot imports.
primary_sync_mode is cloud sync because Jama is SaaS-first and exposes a stable REST API; CLI push is available for self-hosted Jama deployments.
Jama’s REST API is at
/rest/v1/. Auth is OAuth2 client-credentials (preferred) or a Personal Access Token (PAT) for self-hosted Jama.Connector type and pricing
| Type | BYO requirements connector |
| Tier | Team (3 BYO connectors included), Enterprise (bundled) |
| Price | $149 / connector / month above the Team allowance |
v1 direct sync
The adapter pulls:| Jama entity | Roboticks shape |
|---|---|
items (anything that isn’t a Folder or Set) | Requirement with external_id = documentKey, external_version = modifiedDate, external_url deep-linking to the item |
relationships per item | RequirementRelation (verifies, derives, refines, relates_to) with the raw Jama role preserved |
| Custom fields | Stored verbatim in attributes JSONB — surfaced in the matrix UI without schema awareness |
modifiedDate.from={cursor} — only changed items hit the wire.
Cloud sync setup (OAuth2)
Create an OAuth2 client in Jama
Jama → Admin → API Clients → Create OAuth Client. Scope: read access to the project(s). Save the client_id and client_secret.
Subscribe in Roboticks
Settings → Integrations → Requirements → Jama → Subscribe. The setup wizard skips the CLI install step (Jama is cloud-primary) and goes directly to credentials:
- Base URL:
https://acme.jamacloud.com - Client ID + Client Secret
- Jama project ID (numeric — find it under Admin → Projects)
CLI push setup (on-prem Jama)
ReqIF round-trip (alternative)
One-time setup
Add the connector in Roboticks
Settings → Integrations → Requirements → Add → Jama. Name it for the project (e.g.,
jama-warehouse). Roboticks creates the connector record and bills the $149/month line if over the Team allowance.Upload a field mapping
Jama’s workItem types and field names rarely match Roboticks’ default vocabulary. Provide a YAML mapping:Upload via CLI:
CI recipe
coverage_status attribute (confirmed | uncovered | stale) into Jama’s ReqIF.ForeignAttributes, where Jama exposes it as a sortable column.
Field mapping reference
| Roboticks field | Required | Typical Jama source |
|---|---|---|
id | yes | Identifier or documentKey |
title | yes | Name |
text | yes | Description |
type | yes | derived from itemType |
asil_pl | optional | custom field, often ASIL/PL |
priority | optional | Priority |
tags | optional | comma-split of Tags |
| derived-from links | optional | Refines / Derived from link roles |
Round-trip caveats
Rich-text fields lose formatting
Rich-text fields lose formatting
Jama stores
Description as XHTML. Roboticks stores text as Markdown. The conversion preserves headings, lists, bold/italic, and inline code; it discards tables and embedded images. Use the Jama Web Viewer for the canonical rendering.Roboticks-side annotations are advisory
Roboticks-side annotations are advisory
coverage_status is exported as a foreign attribute. Jama displays it but does not gate workflows on it. If you want a Jama review state to block on coverage, wire a Jama webhook to your CI that fails when any pinned requirement is uncovered.ID stability
ID stability
Roboticks uses the value of the
id field (default Identifier) as the immutable key. If Jama re-IDs a workItem (rare, usually via a migration), you’ll get a duplicate; resolve by archiving the old ID via rbtk requirements list --status archived.Link role mapping is one-way at first
Link role mapping is one-way at first
The first round trip imports Jama links as Roboticks “derives_from” or “refines” relationships. The export-back loop preserves them. New Roboticks-side relationships (e.g., a test annotating a requirement) appear in Jama under the
roboticks.confirmed_by foreign attribute, not as native Jama links.Validation
After the first sync:--dry-run:
added, updated, archived, unchanged. On a properly-converged sync, added is 0 unless someone authored a new requirement in Jama since the last run.
Troubleshooting
`field-map: required field 'id' not produced`
`field-map: required field 'id' not produced`
Your mapping’s
fields.id source doesn’t match Jama’s actual field name. Re-export with ?fields=true and inspect the column headers.Duplicate requirement on every sync
Duplicate requirement on every sync
Jama is re-keying. Pin the mapping to a stable field (e.g.,
documentKey instead of Name).Round-trip export rejected by Jama
Round-trip export rejected by Jama
Jama enforces some constraints on import (e.g.,
itemType must exist). Check the upload log in Jama’s Project Admin → Imports.Next
Polarion
The other big RM tool — same shape, different quirks.
rbtk requirements
Upload, coverage, export reference.