> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parable.work/llms.txt
> Use this file to discover all available pages before exploring further.

# TestRail

> Sync test cases, runs, and results from TestRail

Sync test cases, runs, and results from TestRail.

<Tabs>
  <Tab title="Overview">
    Connect Parable to TestRail for test case management and quality metrics.

    #### Test Cases

    Cases, sections, suites

    #### Results

    Runs, results, statistics

    ## Data streams

    This Provider Plugin defines 8 data streams.

    | Stream     | Description                                                                                                              | Sync        |
    | ---------- | ------------------------------------------------------------------------------------------------------------------------ | ----------- |
    | `users`    | All TestRail users                                                                                                       | full        |
    | `projects` | All TestRail projects                                                                                                    | full        |
    | `suites`   | Test suites for a project. Returns a bare array for single-suite projects and a paginated dict for multi-suite projects. | full        |
    | `cases`    | Test cases for a project/suite combination                                                                               | full        |
    | `plans`    | Test plans for a project                                                                                                 | full        |
    | `runs`     | Test runs for a project                                                                                                  | full        |
    | `tests`    | Tests within a run                                                                                                       | full        |
    | `results`  | Test results for a run                                                                                                   | incremental |
  </Tab>

  <Tab title="Setup Guide">
    ### TestRail

    #### What You'll Need

    | Credential    | What it is                                                      |
    | ------------- | --------------------------------------------------------------- |
    | **Email**     | Your TestRail email                                             |
    | **API Token** | Generated from user settings                                    |
    | **Base URL**  | TestRail instance URL (e.g., `https://yourcompany.testrail.io`) |

    > **Info:** **Setup access in TestRail.** These steps require **Administrator**, or a colleague with equivalent permissions who can create credentials for you.
    >
    > If that is not you, ask your TestRail administrator.

    * TestRail user account with API access enabled
    * Admin access for full data visibility

    #### Step 1: Access User Settings

    1. Log in to TestRail
    2. Click your name in the top right → **My Settings**

    #### Step 2: Enable API Key

    1. Go to the **API Keys** section
    2. Check **Enable API** if not already enabled
    3. Click **Add Key** or **Generate Key**
    4. Name: `Parable Integration`

    > **Warning:** **Copy your API key now!**
    >
    > This is the only time it will be displayed. Store it in a secure password manager before closing this page.

    #### Step 3: Note Instance URL

    Your TestRail URL format:

    ```
    https://yourcompany.testrail.io
    ```

    #### Step 4: Enter values in the form

    1. Enter your TestRail **URL**, **Email**, and **API Key** in the Provider form.
    2. Click **Save & test connection**.

    ```bash Test Authentication theme={null}
    curl -u "your-email:YOUR_API_KEY" \
      "https://yourcompany.testrail.io/index.php?/api/v2/get_user_by_email&email=your-email"
    ```

    ```bash List Projects theme={null}
    curl -u "your-email:YOUR_API_KEY" \
      "https://yourcompany.testrail.io/index.php?/api/v2/get_projects"
    ```

    > **Success:** **Success!** If you received a `200 OK` response with valid data, your credentials are configured correctly. You can now configure this Provider in Parable.

    > **Tip:** **Rate Limits:** TestRail enforces rate limits of **varies by plan; typically 200 requests/minute**.
    >
    > Parable handles rate limiting automatically with exponential backoff, but initial syncs of large datasets may take longer due to these limits.
  </Tab>

  <Tab title="Permissions">
    <AccordionGroup>
      <Accordion id="provider-permission-tap-testrail-cases-316a99dd4016" title="Cases" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `cases`

        Cases contain test cases for a project/suite combination.

        * **Enables:** review test-case definitions, ownership context, priority, and automation metadata.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_cases/{project_id}` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        Provider-defined fields may also be returned for this data stream.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-cases-created-by-ec68ee6a14bf" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.created_by`

            Created By identifies the TestRail user who created the case. It preserves the user relationship behind case authorship.

            * **Enables:** join cases to their creating users for ownership and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-created-on-416595908ae2" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.created_on`

            Created On records unix timestamp when the case was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place case records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail case record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-automation-type-a8df9336edb0" title="Custom Automation Type" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_automation_type`

            Custom Automation Type records custom field: automation type ID (e.g., 0 = None, 1 = Ranorex). It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom automation type according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_automation_type` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-expected-2b0bfc2a7187" title="Custom Expected" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_expected`

            Custom Expected records custom field: expected result in text format. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom expected according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_expected` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-goals-19f374e3ada6" title="Custom Goals" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_goals`

            Custom Goals records custom field: goals for the test case. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom goals according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_goals` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-mission-58e9d91a7b48" title="Custom Mission" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_mission`

            Custom Mission records custom field: mission or charter for exploratory testing. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom mission according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_mission` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-obsolete-fdaf76c022ef" title="Custom Obsolete" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_obsolete`

            Custom Obsolete records custom field: whether the test case is marked as obsolete. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom obsolete according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_obsolete` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-preconds-2e042ff878bf" title="Custom Preconds" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_preconds`

            Custom Preconds records custom field: preconditions for the test case (markdown/text). It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom preconds according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_preconds` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-78fa0bef44cc" title="Custom Steps" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps`

            Custom Steps records custom field: test steps in text format. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom steps according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_steps` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-c193ff43e55e" title="Custom Steps Separated" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated`

            Custom Steps Separated records custom field: test steps as structured separated steps. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom steps separated according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_steps_separated` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-additional-f330f17cf64a" title="Additional Info" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated.additional_info`

            Additional Info records additional information or notes for this step. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact additional info value attached to each test rail case step record.
            * **Interpretation:** The provider supplies `additional_info` at test rail case step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-content-eefd9e93b827" title="Content" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated.content`

            Content captures the step description or action to perform. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact content value attached to each test rail case step record.
            * **Interpretation:** The provider supplies `content` at test rail case step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-expected-afe97c3ccdec" title="Expected" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated.expected`

            Expected captures the expected result after performing this step. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact expected value attached to each test rail case step record.
            * **Interpretation:** The provider supplies `expected` at test rail case step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-refs-438501c14c10" title="Refs" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated.refs`

            Refs records reference IDs associated with this step. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-steps-separated-shared-ste-06b7b020599e" title="Shared Step ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_steps_separated.shared_step_id`

            Shared Step ID is the ID of a shared step definition if this step references one. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same shared step ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `shared_step_id` as a record-level identifier on `TestRailCaseStep`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-custom-tags-5d0dc06afc12" title="Custom Tags" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `cases.custom_tags`

            Custom Tags records custom field: tags or labels associated with the test case. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom tags according to the provider and Workspace configuration that produced each case record.
            * **Interpretation:** Keys and value shapes within `custom_tags` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-display-order-1b075c39399d" title="Display Order" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `cases.display_order`

            Display Order reports display order of the case within its section. It preserves the stated measure at this record's granularity.

            * **Enables:** order or classify case records using the provider-defined display order value.
            * **Interpretation:** The provider supplies `display_order` at test rail case granularity as a provider-defined ordinal or planning value rather than elapsed time or money; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-estimate-523de4583bf1" title="Estimate" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `cases.estimate`

            Estimate records the planned execution duration for the test case. It preserves TestRail's human-readable duration text.

            * **Enables:** compare planned effort across cases and schedule test execution using the recorded estimate.
            * **Interpretation:** The provider supplies `estimate` as duration text such as `30s`, `1m 45s`, or `2h`; parse TestRail's units rather than treating the string as an ordinal.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-estimate-forecast-43061bb18437" title="Estimate Forecast" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.estimate_forecast`

            Estimate Forecast records the execution duration forecast from historical test results. It preserves TestRail's predicted duration text for the case.

            * **Enables:** compare forecasted execution effort with the authored estimate and plan test capacity.
            * **Interpretation:** The provider supplies `estimate_forecast` as a provider-formatted duration, not an ordinal or sequence; missing means no forecast was reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-id-d9f4132a55e6" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.id`

            ID is the unique test case identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail case source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail case record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-is-deleted-4cc04d7e6629" title="Is Deleted" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.is_deleted`

            Is Deleted indicates whether the case has been soft-deleted. 0 = active, 1 = deleted. It preserves the provider's current classification of this record.

            * **Enables:** separate case records by the exact provider-reported is deleted value when describing their recorded state.
            * **Interpretation:** The provider supplies `is_deleted` per test rail case record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-milestone-id-8daae17acf2f" title="Milestone ID" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `cases.milestone_id`

            Milestone ID is the ID of the associated milestone for timeline analysis. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same milestone ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `milestone_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-priority-id-4b875f99f960" title="Priority ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.priority_id`

            Priority ID is the ID of the case priority, indicating test importance. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same priority ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `priority_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-project-id-6cf81e4dbc30" title="Project ID" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `cases.project_id`

            Project ID identifies parent key injected by the ingestor from the suites to cases traversal `parentContextFields`. Not part of the upstream API response; written into each row at bronze ingestion time. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `project_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-refs-a424ec10969d" title="Refs" icon="link" iconType="sharp-duotone-solid">
            Developer identifier: `cases.refs`

            Refs records comma-separated reference IDs linking to external systems such as issue trackers. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-section-id-0f29f0b559e4" title="Section ID" icon="file-code" iconType="sharp-duotone-solid">
            Developer identifier: `cases.section_id`

            Section ID is the ID of the section (folder) this case belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same section ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `section_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-suite-id-7fd20bc0b615" title="Suite ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.suite_id`

            Suite ID is the ID of the suite this case belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same suite ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `suite_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-template-id-214e390e18dc" title="Template ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.template_id`

            Template ID is the ID of the template used for this case. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same template ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `template_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-title-6d27b6439e16" title="Title" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.title`

            Title records title of the test case describing the test being performed. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact title value attached to each test rail case record.
            * **Interpretation:** The provider supplies `title` at test rail case granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-type-id-423fd12e77c8" title="Type ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.type_id`

            Type ID is the ID of the case type, categorizing the kind of test. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match case records to provider records that carry the same type ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `type_id` as a record-level identifier on `TestRailCase`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-updated-by-9f24e68343d4" title="Updated By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.updated_by`

            Updated By identifies the TestRail user who last updated the case. It preserves the user relationship behind the latest recorded change.

            * **Enables:** join cases to their last-updating users for change and audit analysis.
            * **Interpretation:** The provider supplies `updated_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-cases-updated-on-e9d59b96c6cf" title="Updated On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `cases.updated_on`

            Updated On records unix timestamp when the case was last updated. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place case records on a timeline by updated on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `updated_on` per test rail case record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-plans-cede42ffa002" title="Plans" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `plans`

        Plans contain test plans for a project.

        * **Enables:** review planned test runs and their recorded milestones and status.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_plans/{id}` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-plans-assignedto-id-59a767acbca7" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `plans.assignedto_id`

            Assignedto ID identifies user ID assigned to the plan. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailPlan`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-blocked-count-38c7502bd603" title="Blocked Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.blocked_count`

            Blocked Count reports the number of blocked tests across all runs in the plan. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported blocked count for each test rail plan record.
            * **Interpretation:** The provider supplies `blocked_count` at test rail plan granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-completed-on-87a2a07f8207" title="Completed On" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `plans.completed_on`

            Completed On states unix timestamp when the plan was completed. It preserves the provider's current classification of this record.

            * **Enables:** separate plan records by the exact provider-reported completed on value when describing their recorded state.
            * **Interpretation:** The provider supplies `completed_on` per test rail plan record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-created-by-5f43a089993c" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.created_by`

            Created By identifies the TestRail user who created the plan. It preserves the user relationship behind plan authorship.

            * **Enables:** join plans to their creating users for ownership and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-created-on-33b00d7d7b3d" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.created_on`

            Created On records unix timestamp when the plan was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place plan records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail plan record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status1-count-b1c6acca5540" title="Custom Status1 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status1_count`

            Custom Status1 Count reports the number of tests with custom status 1 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status1 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status1_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status2-count-02ac37032e46" title="Custom Status2 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status2_count`

            Custom Status2 Count reports the number of tests with custom status 2 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status2 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status2_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status3-count-640a9ff1b6d1" title="Custom Status3 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status3_count`

            Custom Status3 Count reports the number of tests with custom status 3 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status3 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status3_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status4-count-19e1a69fdcd5" title="Custom Status4 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status4_count`

            Custom Status4 Count reports the number of tests with custom status 4 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status4 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status4_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status5-count-5d8b02370896" title="Custom Status5 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status5_count`

            Custom Status5 Count reports the number of tests with custom status 5 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status5 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status5_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status6-count-b480ebfc7741" title="Custom Status6 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status6_count`

            Custom Status6 Count reports the number of tests with custom status 6 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status6 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status6_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-custom-status7-count-2e028d7c00c4" title="Custom Status7 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.custom_status7_count`

            Custom Status7 Count reports the number of tests with custom status 7 across all runs in the plan. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status7 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status7_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-description-00ebae8e2f34" title="Description" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.description`

            Description records description of the plan, providing context for its purpose. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact description value attached to each test rail plan record.
            * **Interpretation:** The provider supplies `description` at test rail plan granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-fe356b4a995f" title="Entries" icon="map-location-dot" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries`

            Entries records array of plan entries (test run groups), included when retrieving a single plan via `get_plan`. It preserves the containing or referenced object needed to reconstruct the provider relationship.

            * **Enables:** enumerate the nested entries records contained by each test rail plan record.
            * **Interpretation:** The provider returns `entries` as a list on `TestRailPlan`; an absent value does not prove that no related object exists outside the credential's visibility.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-assignedto-id-a82caed1a3ff" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.assignedto_id`

            Assignedto ID identifies user ID assigned to this entry. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailPlanEntry`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-case-ids-24d3d2338c77" title="Case IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.case_ids`

            Case IDs identifies array of specific case IDs included in this entry when `include_all` is false. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same case ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `case_ids` as a record-level identifier on `TestRailPlanEntry`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-config-ids-efce42031d03" title="Config IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.config_ids`

            Config IDs identifies array of configuration IDs applied to this entry. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same config ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `config_ids` as a record-level identifier on `TestRailPlanEntry`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-description-f1de1f6836b5" title="Description" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.description`

            Description records description of the plan entry. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact description value attached to each test rail plan entry record.
            * **Interpretation:** The provider supplies `description` at test rail plan entry granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-id-ae4769a801f3" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.id`

            ID is the unique identifier for the plan entry (UUID string). It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail plan entry source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail plan entry record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-include-all-e8c3c532c00b" title="Include All" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.include_all`

            Include All indicates whether all test cases from the suite are included. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select plan records for which the provider reports include all as true or false.
            * **Interpretation:** The provider supplies `include_all` as a boolean per test rail plan entry record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-name-e2040276381e" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.name`

            Name records name of the plan entry. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail plan entry record.
            * **Interpretation:** The provider supplies `name` at test rail plan entry granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-refs-cb97e8e7e598" title="Refs" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.refs`

            Refs records comma-separated list of references or requirements. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-73adf22c80ab" title="Runs" icon="map-location-dot" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs`

            Runs records array of test runs within this plan entry. It preserves the containing or referenced object needed to reconstruct the provider relationship.

            * **Enables:** enumerate the nested runs records contained by each test rail plan entry record.
            * **Interpretation:** The provider returns `runs` as a list on `TestRailPlanEntry`; an absent value does not prove that no related object exists outside the credential's visibility.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-assignedto-id-0bd7d59b11ce" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.assignedto_id`

            Assignedto ID identifies user ID assigned to this run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-blocked-count-b0e6ded58b4e" title="Blocked Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.blocked_count`

            Blocked Count reports the number of blocked tests in this run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported blocked count for each test rail plan entry run record.
            * **Interpretation:** The provider supplies `blocked_count` at test rail plan entry run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-case-ids-d6665a9b7c38" title="Case IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.case_ids`

            Case IDs identifies array of specific case IDs included in this run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same case ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `case_ids` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-completed-on-562d8c66b757" title="Completed On" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.completed_on`

            Completed On states unix timestamp when the run was completed. It preserves the provider's current classification of this record.

            * **Enables:** separate plan records by the exact provider-reported completed on value when describing their recorded state.
            * **Interpretation:** The provider supplies `completed_on` per test rail plan entry run record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-config-31a2100201af" title="Config" icon="file-code" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.config`

            Config records comma-separated configuration names applied to this run. It preserves the configuration or technical value needed to explain how the provider object is defined.

            * **Enables:** inspect the exact config when validating the configuration or technical definition of a test rail plan entry run record.
            * **Interpretation:** The provider supplies `config` as configuration or technical metadata on `TestRailPlanEntryRun`; consumers must preserve the exact syntax and documented vocabulary.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-config-ids-02c2e63e5bb2" title="Config IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.config_ids`

            Config IDs identifies array of configuration IDs applied to this run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same config ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `config_ids` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-created-by-7659c64fbf22" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.created_by`

            Created By identifies the TestRail user who created the plan-entry run. It preserves the user relationship behind run creation.

            * **Enables:** join plan-entry runs to their creating users for ownership and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-created-on-9e240155f7b2" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.created_on`

            Created On records unix timestamp when the run was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place plan records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail plan entry run record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status1-count-d8bf150e0ae5" title="Custom Status1 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status1_count`

            Custom Status1 Count reports the number of tests with custom status 1 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status1 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status1_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status2-count-526c25cfc350" title="Custom Status2 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status2_count`

            Custom Status2 Count reports the number of tests with custom status 2 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status2 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status2_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status3-count-43fdacc7c361" title="Custom Status3 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status3_count`

            Custom Status3 Count reports the number of tests with custom status 3 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status3 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status3_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status4-count-1c18df340b5b" title="Custom Status4 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status4_count`

            Custom Status4 Count reports the number of tests with custom status 4 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status4 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status4_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status5-count-27eae71046c7" title="Custom Status5 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status5_count`

            Custom Status5 Count reports the number of tests with custom status 5 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status5 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status5_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status6-count-c9495453d9e6" title="Custom Status6 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status6_count`

            Custom Status6 Count reports the number of tests with custom status 6 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status6 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status6_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-custom-status7-count-db48607d43ce" title="Custom Status7 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.custom_status7_count`

            Custom Status7 Count reports the number of tests with custom status 7 in this run. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status7 count according to the provider and Workspace configuration that produced each plan record.
            * **Interpretation:** Keys and value shapes within `custom_status7_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-description-73fadb4af004" title="Description" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.description`

            Description records description of the run. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact description value attached to each test rail plan entry run record.
            * **Interpretation:** The provider supplies `description` at test rail plan entry run granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-entry-id-9e46f8967580" title="Entry ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.entry_id`

            Entry ID is the ID of the plan entry this run belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same entry ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `entry_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-entry-index-34c00f5dcfec" title="Entry Index" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.entry_index`

            Entry Index reports index of the plan entry this run belongs to. It preserves the stated measure at this record's granularity.

            * **Enables:** order or classify plan records using the provider-defined entry index value.
            * **Interpretation:** The provider supplies `entry_index` at test rail plan entry run granularity as a provider-defined ordinal or planning value rather than elapsed time or money; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-failed-count-48688668fa91" title="Failed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.failed_count`

            Failed Count reports the number of failed tests in this run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported failed count for each test rail plan entry run record.
            * **Interpretation:** The provider supplies `failed_count` at test rail plan entry run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-id-88ea30a9650d" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.id`

            ID is the unique run identifier. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-include-all-a7a72d2ac46c" title="Include All" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.include_all`

            Include All indicates whether all test cases from the suite are included. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select plan records for which the provider reports include all as true or false.
            * **Interpretation:** The provider supplies `include_all` as a boolean per test rail plan entry run record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-is-completed-d40d580d9a3b" title="Is Completed" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.is_completed`

            Is Completed indicates whether the run is completed. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select plan records for which the provider reports is completed as true or false.
            * **Interpretation:** The provider supplies `is_completed` as a boolean per test rail plan entry run record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-milestone-id-fa29b4a7bd66" title="Milestone ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.milestone_id`

            Milestone ID is the ID of the associated milestone. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same milestone ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `milestone_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-name-38228e5d03b9" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.name`

            Name records name of the test run. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail plan entry run record.
            * **Interpretation:** The provider supplies `name` at test rail plan entry run granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-passed-count-e657860db36b" title="Passed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.passed_count`

            Passed Count reports the number of passed tests in this run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported passed count for each test rail plan entry run record.
            * **Interpretation:** The provider supplies `passed_count` at test rail plan entry run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-plan-id-031a7ab318db" title="Plan ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.plan_id`

            Plan ID is the ID of the parent plan. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same plan ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `plan_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-project-id-052dee40a7f1" title="Project ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.project_id`

            Project ID is the ID of the parent project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `project_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-refs-dfe0a207cba8" title="Refs" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.refs`

            Refs records comma-separated list of references or requirements. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-retest-count-064a191ff627" title="Retest Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.retest_count`

            Retest Count reports the number of tests marked for retest in this run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported retest count for each test rail plan entry run record.
            * **Interpretation:** The provider supplies `retest_count` at test rail plan entry run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-suite-id-611f16c39dd4" title="Suite ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.suite_id`

            Suite ID is the ID of the test suite for this run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same suite ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `suite_id` as a record-level identifier on `TestRailPlanEntryRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-untested-count-09d2e60efd6c" title="Untested Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.untested_count`

            Untested Count reports the number of untested tests in this run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported untested count for each test rail plan entry run record.
            * **Interpretation:** The provider supplies `untested_count` at test rail plan entry run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-updated-on-05b7053c3380" title="Updated On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.updated_on`

            Updated On records unix timestamp when the run was last updated. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place plan records on a timeline by updated on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `updated_on` per test rail plan entry run record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-runs-url-ded52557eba7" title="URL" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.runs.url`

            URL records URL to the run in TestRail. It retains the exact provider location for the referenced resource.

            * **Enables:** open or trace the exact provider resource referenced by URL on a test rail plan entry run record.
            * **Interpretation:** The provider supplies `url` as a URL or resource locator on each test rail plan entry run record. Availability still follows the provider's permissions and retention.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-entries-suite-id-324fd7d8763a" title="Suite ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.entries.suite_id`

            Suite ID is the ID of the test suite associated with this entry. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same suite ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `suite_id` as a record-level identifier on `TestRailPlanEntry`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-failed-count-741c0effa526" title="Failed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.failed_count`

            Failed Count reports the number of failed tests across all runs in the plan. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported failed count for each test rail plan record.
            * **Interpretation:** The provider supplies `failed_count` at test rail plan granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-id-ac6a2ff511ac" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.id`

            ID is the unique plan identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail plan source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail plan record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-is-completed-6a0cfd276e04" title="Is Completed" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `plans.is_completed`

            Is Completed indicates whether the plan is completed. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select plan records for which the provider reports is completed as true or false.
            * **Interpretation:** The provider supplies `is_completed` as a boolean per test rail plan record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-milestone-id-6b9a99c591da" title="Milestone ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.milestone_id`

            Milestone ID is the ID of the associated milestone. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same milestone ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `milestone_id` as a record-level identifier on `TestRailPlan`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-name-51077c28d242" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.name`

            Name records name of the test plan. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail plan record.
            * **Interpretation:** The provider supplies `name` at test rail plan granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-passed-count-899224fac532" title="Passed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.passed_count`

            Passed Count reports the number of passed tests across all runs in the plan. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported passed count for each test rail plan record.
            * **Interpretation:** The provider supplies `passed_count` at test rail plan granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-project-id-4edb5e2cf18e" title="Project ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.project_id`

            Project ID is the ID of the parent project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match plan records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `project_id` as a record-level identifier on `TestRailPlan`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-retest-count-e0064958efb5" title="Retest Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.retest_count`

            Retest Count reports the number of tests marked for retest across all runs in the plan. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported retest count for each test rail plan record.
            * **Interpretation:** The provider supplies `retest_count` at test rail plan granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-untested-count-ca6bf13e416d" title="Untested Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.untested_count`

            Untested Count reports the number of untested tests across all runs in the plan. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported untested count for each test rail plan record.
            * **Interpretation:** The provider supplies `untested_count` at test rail plan granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-updated-on-da48670cd6cb" title="Updated On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.updated_on`

            Updated On records unix timestamp when the plan was last updated. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place plan records on a timeline by updated on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `updated_on` per test rail plan record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-plans-url-8849dd7a507e" title="URL" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `plans.url`

            URL records URL to the plan in TestRail. It retains the exact provider location for the referenced resource.

            * **Enables:** open or trace the exact provider resource referenced by URL on a test rail plan record.
            * **Interpretation:** The provider supplies `url` as a URL or resource locator on each test rail plan record. Availability still follows the provider's permissions and retention.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-projects-c5456e0a8a51" title="Projects" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `projects`

        Projects contain all TestRail projects.

        * **Enables:** enumerate TestRail project containers before loading their suites, cases, plans, and runs.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_projects` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-projects-announcement-4a4917e184f2" title="Announcement" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.announcement`

            Announcement states project announcement text, typically used to communicate project status or goals. It preserves the provider's current classification of this record.

            * **Enables:** separate project records by the exact provider-reported announcement value when describing their recorded state.
            * **Interpretation:** The provider supplies `announcement` per test rail project record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-completed-on-59d352fbc7fc" title="Completed On" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `projects.completed_on`

            Completed On states unix timestamp when the project was completed. Null if not completed. It preserves the provider's current classification of this record.

            * **Enables:** separate project records by the exact provider-reported completed on value when describing their recorded state.
            * **Interpretation:** The provider supplies `completed_on` per test rail project record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-default-role-282463d5c976" title="Default Role" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.default_role`

            Default Role captures the name of the default role assigned to users added to this project. It documents the access-related value reported for this object or membership.

            * **Enables:** describe the provider-reported default role attached to each test rail project record.
            * **Interpretation:** The provider supplies `default_role` at test rail project granularity. It describes provider-reported context and does not prove effective access beyond the returned record.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-default-role-id-5b4d5e2495ee" title="Default Role ID" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.default_role_id`

            Default Role ID captures the default role ID assigned to users added to this project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match project records to provider records that carry the same default role ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `default_role_id` as a record-level identifier on `TestRailProject`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-groups-ba70a90f4b17" title="Groups" icon="map-location-dot" iconType="sharp-duotone-solid">
            Developer identifier: `projects.groups`

            Groups records list of group objects associated with the project, if included in the response. It preserves the containing or referenced object needed to reconstruct the provider relationship.

            * **Enables:** associate each test rail project record with the specific provider container named by groups.
            * **Interpretation:** The provider returns `groups` as a list on `TestRailProject`; an absent value does not prove that no related object exists outside the credential's visibility.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-groups-id-e8906ab66507" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.groups.id`

            ID is the unique group identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail project group source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail project group record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-groups-name-47a181ee24a6" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.groups.name`

            Name records name of the group. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail project group record.
            * **Interpretation:** The provider supplies `name` at test rail project group granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-groups-role-ae13ae53f2ff" title="Role" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.groups.role`

            Role captures the name of the role assigned to the group within this project. It documents the access-related value reported for this object or membership.

            * **Enables:** describe the provider-reported role attached to each test rail project group record.
            * **Interpretation:** The provider supplies `role` at test rail project group granularity. It describes provider-reported context and does not prove effective access beyond the returned record.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-groups-role-id-4f0c66903348" title="Role ID" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.groups.role_id`

            Role ID captures the role ID assigned to the group within this project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match project records to provider records that carry the same role ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `role_id` as a record-level identifier on `TestRailProjectGroup`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-id-18097b4e9e27" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.id`

            ID is the unique project identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail project source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail project record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-is-completed-2b5b9cddf90b" title="Is Completed" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `projects.is_completed`

            Is Completed indicates whether the project is marked as completed (archived). It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select project records for which the provider reports is completed as true or false.
            * **Interpretation:** The provider supplies `is_completed` as a boolean per test rail project record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-is-deleted-34ef635754d2" title="Is Deleted" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `projects.is_deleted`

            Is Deleted indicates whether the project has been soft-deleted. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select project records for which the provider reports is deleted as true or false.
            * **Interpretation:** The provider supplies `is_deleted` as a boolean per test rail project record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-name-61ea2b21a72e" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.name`

            Name records name of the project. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail project record.
            * **Interpretation:** The provider supplies `name` at test rail project granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-show-announcement-6fe937953fef" title="Show Announcement" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `projects.show_announcement`

            Show Announcement indicates whether the project announcement is displayed on the project overview page. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select project records for which the provider reports show announcement as true or false.
            * **Interpretation:** The provider supplies `show_announcement` as a boolean per test rail project record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-suite-mode-ba64aca246e2" title="Suite Mode" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.suite_mode`

            Suite Mode states suite mode of the project determining how suites and sections are organized. It preserves the provider's current classification of this record.

            * **Enables:** separate project records by the exact provider-reported suite mode value when describing their recorded state.
            * **Interpretation:** The provider supplies `suite_mode` per test rail project record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-url-74896985d779" title="URL" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.url`

            URL records URL to the project in the TestRail web interface. It retains the exact provider location for the referenced resource.

            * **Enables:** open or trace the exact provider resource referenced by URL on a test rail project record.
            * **Interpretation:** The provider supplies `url` as a URL or resource locator on each test rail project record. Availability still follows the provider's permissions and retention.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-097043cd15d3" title="Users" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users`

            Users records list of user objects associated with the project, if included in the response. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail project record to the provider-reported actor represented by users.
            * **Interpretation:** The provider supplies `users` as identity or attribution context on each test rail project record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-email-1d363575abae" title="Email" icon="comment-dots" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.email`

            Email records email address of the user. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail project user record to the provider-reported person or account represented by email.
            * **Interpretation:** The provider supplies `email` as identity or attribution context on each test rail project user record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-id-a91fa6640eda" title="ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.id`

            ID is the unique user identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail project user source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail project user record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-is-active-11a56f85f91a" title="Is Active" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.is_active`

            Is Active indicates whether the user account is active. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select project records for which the provider reports is active as true or false.
            * **Interpretation:** The provider supplies `is_active` as a boolean per test rail project user record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-name-d45a70e4a812" title="Name" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.name`

            Name records full name of the user. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail project user record to the provider-reported person or account represented by name.
            * **Interpretation:** The provider supplies `name` as identity or attribution context on each test rail project user record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-role-34253d154dc8" title="Role" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.role`

            Role captures the name of the role assigned to the user within this project. It documents the access-related value reported for this object or membership.

            * **Enables:** describe the provider-reported role attached to each test rail project user record.
            * **Interpretation:** The provider supplies `role` at test rail project user granularity. It describes provider-reported context and does not prove effective access beyond the returned record.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-projects-users-role-id-04dbf198f70f" title="Role ID" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `projects.users.role_id`

            Role ID captures the role ID assigned to the user within this project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match project records to provider records that carry the same role ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `role_id` as a record-level identifier on `TestRailProjectUser`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-results-66b0eaada557" title="Results" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `results`

        Results contain test results for a run.

        * **Enables:** measure recorded test outcomes and elapsed time for each run.
        * **Scope:** Reads provider changes through `GET /index.php?/api/v2/get_results_for_run/{id}` using the declared incremental request boundary. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        Provider-defined fields may also be returned for this data stream.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-results-assignedto-id-01f508d6f529" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `results.assignedto_id`

            Assignedto ID identifies user ID assigned to the test at the time of this result. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-attachment-ids-850ef347d3eb" title="Attachment IDs" icon="file-code" iconType="sharp-duotone-solid">
            Developer identifier: `results.attachment_ids`

            Attachment IDs identifies array of attachment IDs associated with this result. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same attachment ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `attachment_ids` as a record-level identifier on `TestRailResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-comment-8af73ed6ff2a" title="Comment" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.comment`

            Comment records comment or notes on the result, may contain rich text/markdown. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact comment value attached to each test rail result record.
            * **Interpretation:** The provider supplies `comment` at test rail result granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-created-by-23db2257a4fc" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.created_by`

            Created By identifies the TestRail user who created or submitted the result. It preserves the user relationship behind the recorded outcome.

            * **Enables:** join results to their submitting users for execution and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-created-on-a716b9b5aefa" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.created_on`

            Created On records unix timestamp when the result was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place result records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail result record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-custom-step-results-0f6dbe2dfbc8" title="Custom Step Results" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `results.custom_step_results`

            Custom Step Results records array of individual step results for step-based test cases. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom step results according to the provider and Workspace configuration that produced each result record.
            * **Interpretation:** Keys and value shapes within `custom_step_results` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-custom-step-results-actual-97e45d3b736e" title="Actual" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.custom_step_results.actual`

            Actual captures the actual result observed during execution. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact actual value attached to each custom step result record.
            * **Interpretation:** The provider supplies `actual` at custom step result granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-custom-step-results-content-88a251a52649" title="Content" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.custom_step_results.content`

            Content captures the step description/content. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact content value attached to each custom step result record.
            * **Interpretation:** The provider supplies `content` at custom step result granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-custom-step-results-expected-a6b617a1f6e2" title="Expected" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.custom_step_results.expected`

            Expected captures the expected result for this step. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact expected value attached to each custom step result record.
            * **Interpretation:** The provider supplies `expected` at custom step result granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-custom-step-results-status-id-67850aba96ac" title="Status ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.custom_step_results.status_id`

            Status ID identifies status of this individual step (e.g., 1=Passed, 5=Failed). It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same status ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `status_id` as a record-level identifier on `CustomStepResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-defects-920ba1b70d21" title="Defects" icon="link" iconType="sharp-duotone-solid">
            Developer identifier: `results.defects`

            Defects records comma-separated list of defect/bug IDs linked to this result. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by defects from the test record to their external records.
            * **Interpretation:** The provider supplies `defects` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-elapsed-58d64c52f0dc" title="Elapsed" icon="code-branch" iconType="sharp-duotone-solid">
            Developer identifier: `results.elapsed`

            Elapsed reports time elapsed for the test execution (e.g., '30s', '1m 45s', '2h 30m'). It preserves the elapsed interval reported for this record.

            * **Enables:** compare the provider-recorded interval represented by elapsed across result records.
            * **Interpretation:** The provider supplies `elapsed` per test rail result record in the unit stated by the provider description; it is an elapsed or recorded interval, not an outcome measure.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-id-037715427e20" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.id`

            ID is the unique result identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail result source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail result record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-status-id-7486b43dc46a" title="Status ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.status_id`

            Status ID identifies status of the result (e.g., 1=Passed, 2=Blocked, 3=Untested, 4=Retest, 5=Failed). It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same status ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `status_id` as a record-level identifier on `TestRailResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-test-id-7db49fff1882" title="Test ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.test_id`

            Test ID is the ID of the parent test this result belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same test ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `test_id` as a record-level identifier on `TestRailResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-results-version-6dc3df202f9a" title="Version" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `results.version`

            Version identifies version or build identifier of the software being tested. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match result records to provider records that carry the same version, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `version` as a record-level identifier on `TestRailResult`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-runs-ae0158c42cfb" title="Runs" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `runs`

        Runs contain test runs for a project.

        * **Enables:** compare test runs by configuration, milestone, assignee context, and completion state.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_runs/{id}` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-runs-assignedto-id-a2c68b777c8f" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `runs.assignedto_id`

            Assignedto ID identifies user ID assigned to the run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-blocked-count-c539f1a09ef4" title="Blocked Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.blocked_count`

            Blocked Count reports the number of blocked tests in the run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported blocked count for each test rail run record.
            * **Interpretation:** The provider supplies `blocked_count` at test rail run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-case-ids-33653f7bad26" title="Case IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.case_ids`

            Case IDs identifies array of case IDs included in the run when `include_all` is false. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same case ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `case_ids` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-completed-on-3caf9108eb73" title="Completed On" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `runs.completed_on`

            Completed On states unix timestamp when the run was completed. Null if not completed. It preserves the provider's current classification of this record.

            * **Enables:** separate run records by the exact provider-reported completed on value when describing their recorded state.
            * **Interpretation:** The provider supplies `completed_on` per test rail run record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-config-e926b91748f2" title="Config" icon="file-code" iconType="sharp-duotone-solid">
            Developer identifier: `runs.config`

            Config records configuration string for the run, describing the test configuration context. It preserves the configuration or technical value needed to explain how the provider object is defined.

            * **Enables:** inspect the exact config when validating the configuration or technical definition of a test rail run record.
            * **Interpretation:** The provider supplies `config` as configuration or technical metadata on `TestRailRun`; consumers must preserve the exact syntax and documented vocabulary.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-config-ids-5cf9f0f2efd1" title="Config IDs" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.config_ids`

            Config IDs identifies array of configuration IDs associated with the run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same config ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `config_ids` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-created-by-ab6025f2b15f" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.created_by`

            Created By identifies the TestRail user who created the run. It preserves the user relationship behind run creation.

            * **Enables:** join runs to their creating users for ownership and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-created-on-0f2c20503953" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.created_on`

            Created On records unix timestamp when the run was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place run records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail run record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status1-count-bbcd6e62a4b3" title="Custom Status1 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status1_count`

            Custom Status1 Count reports the number of tests with custom status 1. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status1 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status1_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status2-count-e8950cbe393d" title="Custom Status2 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status2_count`

            Custom Status2 Count reports the number of tests with custom status 2. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status2 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status2_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status3-count-de435d03a66e" title="Custom Status3 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status3_count`

            Custom Status3 Count reports the number of tests with custom status 3. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status3 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status3_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status4-count-ad15b654f567" title="Custom Status4 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status4_count`

            Custom Status4 Count reports the number of tests with custom status 4. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status4 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status4_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status5-count-888fd9cd62fe" title="Custom Status5 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status5_count`

            Custom Status5 Count reports the number of tests with custom status 5. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status5 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status5_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status6-count-301392fa57fe" title="Custom Status6 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status6_count`

            Custom Status6 Count reports the number of tests with custom status 6. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status6 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status6_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-custom-status7-count-8d3246a74893" title="Custom Status7 Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.custom_status7_count`

            Custom Status7 Count reports the number of tests with custom status 7. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom status7 count according to the provider and Workspace configuration that produced each run record.
            * **Interpretation:** Keys and value shapes within `custom_status7_count` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-description-0444b916203b" title="Description" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.description`

            Description records description of the run providing context for its purpose. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact description value attached to each test rail run record.
            * **Interpretation:** The provider supplies `description` at test rail run granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-entry-id-19299b74a587" title="Entry ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.entry_id`

            Entry ID is the ID of the test plan entry this run belongs to, if part of a plan. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same entry ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `entry_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-entry-index-3bf5a9a560ec" title="Entry Index" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `runs.entry_index`

            Entry Index reports index of the test plan entry this run belongs to, if part of a plan. It preserves the stated measure at this record's granularity.

            * **Enables:** order or classify run records using the provider-defined entry index value.
            * **Interpretation:** The provider supplies `entry_index` at test rail run granularity as a provider-defined ordinal or planning value rather than elapsed time or money; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-failed-count-98c5132174ef" title="Failed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.failed_count`

            Failed Count reports the number of failed tests in the run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported failed count for each test rail run record.
            * **Interpretation:** The provider supplies `failed_count` at test rail run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-id-83e10d978edf" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.id`

            ID is the unique run identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail run source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail run record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-include-all-22f79c2ba5be" title="Include All" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `runs.include_all`

            Include All indicates whether the run includes all test cases from the suite. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select run records for which the provider reports include all as true or false.
            * **Interpretation:** The provider supplies `include_all` as a boolean per test rail run record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-is-completed-25e20e7c9979" title="Is Completed" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `runs.is_completed`

            Is Completed indicates whether the run is completed. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select run records for which the provider reports is completed as true or false.
            * **Interpretation:** The provider supplies `is_completed` as a boolean per test rail run record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-milestone-id-fb2b8de30802" title="Milestone ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.milestone_id`

            Milestone ID is the ID of the associated milestone. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same milestone ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `milestone_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-name-d1e73fd83baf" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.name`

            Name records name of the test run. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail run record.
            * **Interpretation:** The provider supplies `name` at test rail run granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-passed-count-4dcb1f19892d" title="Passed Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.passed_count`

            Passed Count reports the number of passed tests in the run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported passed count for each test rail run record.
            * **Interpretation:** The provider supplies `passed_count` at test rail run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-plan-id-84a6ae7760a9" title="Plan ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.plan_id`

            Plan ID is the ID of the parent test plan, if any. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same plan ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `plan_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-project-id-cce7fe8a436d" title="Project ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.project_id`

            Project ID is the ID of the parent project. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `project_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-refs-8cef4cd00b21" title="Refs" icon="link" iconType="sharp-duotone-solid">
            Developer identifier: `runs.refs`

            Refs records comma-separated list of reference IDs or requirements linked to this run. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-retest-count-b3a589d16991" title="Retest Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.retest_count`

            Retest Count reports the number of tests marked for retest in the run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported retest count for each test rail run record.
            * **Interpretation:** The provider supplies `retest_count` at test rail run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-suite-id-47be4fcb8852" title="Suite ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.suite_id`

            Suite ID is the ID of the suite this run is based on. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match run records to provider records that carry the same suite ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `suite_id` as a record-level identifier on `TestRailRun`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-untested-count-c18f10622bd1" title="Untested Count" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.untested_count`

            Untested Count reports the number of untested tests in the run. It preserves the stated measure at this record's granularity.

            * **Enables:** measure the provider-reported untested count for each test rail run record.
            * **Interpretation:** The provider supplies `untested_count` at test rail run granularity as a count at one value per record; zero and missing are not interchangeable.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-updated-on-009205a9ba31" title="Updated On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.updated_on`

            Updated On records unix timestamp when the run was last updated. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place run records on a timeline by updated on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `updated_on` per test rail run record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-runs-url-1264d59f0632" title="URL" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `runs.url`

            URL records full URL to the run in the TestRail web UI. It retains the exact provider location for the referenced resource.

            * **Enables:** open or trace the exact provider resource referenced by URL on a test rail run record.
            * **Interpretation:** The provider supplies `url` as a URL or resource locator on each test rail run record. Availability still follows the provider's permissions and retention.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-suites-3eb3ecb76ffb" title="Suites" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `suites`

        Suites contain test suites for a project. Returns a bare array for single-suite projects and a paginated dict for multi-suite projects.

        * **Enables:** organize test cases by their parent project and suite mode.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_suites/{id}` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-suites-completed-on-3048f6593f6d" title="Completed On" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `suites.completed_on`

            Completed On states UNIX timestamp indicating when the suite was marked as completed, if applicable. It preserves the provider's current classification of this record.

            * **Enables:** separate suite records by the exact provider-reported completed on value when describing their recorded state.
            * **Interpretation:** The provider supplies `completed_on` per test rail suite record using its own state vocabulary; unknown and missing values must remain distinct.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-created-by-99a2b26ce79a" title="Created By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.created_by`

            Created By identifies the TestRail user who created the suite. It preserves the user relationship behind suite authorship.

            * **Enables:** join suites to their creating users for ownership and audit analysis.
            * **Interpretation:** The provider supplies `created_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-created-on-4f1ed2c32945" title="Created On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.created_on`

            Created On records UNIX timestamp indicating when the suite was created. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place suite records on a timeline by created on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `created_on` per test rail suite record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-description-b5359585ffca" title="Description" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.description`

            Description records description of the test suite, providing context about its purpose and scope. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact description value attached to each test rail suite record.
            * **Interpretation:** The provider supplies `description` at test rail suite granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-id-7fa28644dbb8" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.id`

            ID is the unique identifier for the test suite. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail suite source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail suite record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-is-baseline-da18cdf4a43a" title="Is Baseline" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `suites.is_baseline`

            Is Baseline indicates whether this suite is a baseline suite. Baseline suites represent a frozen snapshot of test cases. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select suite records for which the provider reports is baseline as true or false.
            * **Interpretation:** The provider supplies `is_baseline` as a boolean per test rail suite record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-is-completed-9111641d3fdb" title="Is Completed" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `suites.is_completed`

            Is Completed indicates whether this suite is marked completed. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select suite records for which the provider reports is completed as true or false.
            * **Interpretation:** The provider supplies `is_completed` as a boolean per test rail suite record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-is-copy-7eb91ac985bb" title="Is Copy" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `suites.is_copy`

            Is Copy indicates whether this suite is a copy of another suite. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select suite records for which the provider reports is copy as true or false.
            * **Interpretation:** The provider supplies `is_copy` as a boolean per test rail suite record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-is-master-21f2dfa77965" title="Is Master" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `suites.is_master`

            Is Master indicates whether this is the master suite. In single-suite mode projects, the master suite is the primary and only suite. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select suite records for which the provider reports is master as true or false.
            * **Interpretation:** The provider supplies `is_master` as a boolean per test rail suite record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-name-e2ce73b8724d" title="Name" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.name`

            Name records name of the test suite. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact name value attached to each test rail suite record.
            * **Interpretation:** The provider supplies `name` at test rail suite granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-project-id-8260cf750a77" title="Project ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.project_id`

            Project ID is the ID of the parent project this suite belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match suite records to provider records that carry the same project ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `project_id` as a record-level identifier on `TestRailSuite`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-updated-by-8b6bae27a6fd" title="Updated By" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.updated_by`

            Updated By identifies the TestRail user who last updated the suite. It preserves the user relationship behind the latest recorded change.

            * **Enables:** join suites to their last-updating users for change and audit analysis.
            * **Interpretation:** The provider supplies `updated_by` as a numeric user identifier, not a count or measure; resolve it against the matching TestRail user ID.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-updated-on-640a91edc421" title="Updated On" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.updated_on`

            Updated On records UNIX timestamp indicating when the suite was last updated. It anchors the named event or boundary on the record's timeline.

            * **Enables:** place suite records on a timeline by updated on and select the records within an explicit reporting window.
            * **Interpretation:** The provider supplies `updated_on` per test rail suite record as a timestamp at the precision returned by the provider; missing values mean the event or boundary was not reported.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-suites-url-d4157109a548" title="URL" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `suites.url`

            URL records direct URL to the suite in the TestRail web interface. It retains the exact provider location for the referenced resource.

            * **Enables:** open or trace the exact provider resource referenced by URL on a test rail suite record.
            * **Interpretation:** The provider supplies `url` as a URL or resource locator on each test rail suite record. Availability still follows the provider's permissions and retention.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-tests-6722e2033134" title="Tests" icon="diagram-project" iconType="sharp-duotone-solid">
        Developer identifier: `tests`

        Tests contain tests within a run.

        * **Enables:** inspect the test instances included in each run.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_tests/{id}` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        Provider-defined fields may also be returned for this data stream.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-tests-assignedto-id-63c2f78052af" title="Assignedto ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `tests.assignedto_id`

            Assignedto ID identifies user ID assigned to the test. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same assignedto ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `assignedto_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-case-id-0d3fbbe5ba95" title="Case ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.case_id`

            Case ID is the ID of the related test case. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same case ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `case_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-automation-type-a95eb50ebe08" title="Custom Automation Type" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_automation_type`

            Custom Automation Type records custom field: automation type identifier (common custom field). It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom automation type according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_automation_type` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-expected-d25b608b3661" title="Custom Expected" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_expected`

            Custom Expected records custom field: expected results in text format. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom expected according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_expected` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-goals-600ddb233ccb" title="Custom Goals" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_goals`

            Custom Goals records custom field: goals for exploratory testing. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom goals according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_goals` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-mission-8117570a60d9" title="Custom Mission" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_mission`

            Custom Mission records custom field: mission/charter for exploratory testing. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom mission according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_mission` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-preconds-744a527731ec" title="Custom Preconds" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_preconds`

            Custom Preconds records custom field: preconditions for the test. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom preconds according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_preconds` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-9f962ad70dbb" title="Custom Steps" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps`

            Custom Steps records custom field: test steps in text format. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom steps according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_steps` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-084dc879a3a7" title="Custom Steps Separated" icon="chart-line" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated`

            Custom Steps Separated records custom field: test steps as structured separated steps. It retains configured attributes whose keys or shape are not fixed by this base schema.

            * **Enables:** interpret custom steps separated according to the provider and Workspace configuration that produced each test record.
            * **Interpretation:** Keys and value shapes within `custom_steps_separated` can vary with provider and customer configuration; consumers must inspect the observed Workspace schema rather than assume a fixed contract.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-additional-9ee933fbab75" title="Additional Info" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated.additional_info`

            Additional Info records additional information or notes for the step. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact additional info value attached to each test rail custom step record.
            * **Interpretation:** The provider supplies `additional_info` at test rail custom step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-content-9fdab24aa7cf" title="Content" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated.content`

            Content captures the step description or action to perform. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact content value attached to each test rail custom step record.
            * **Interpretation:** The provider supplies `content` at test rail custom step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-expected-1d01a0173a90" title="Expected" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated.expected`

            Expected captures the expected result of the step. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact expected value attached to each test rail custom step record.
            * **Interpretation:** The provider supplies `expected` at test rail custom step granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-refs-26e700f25e93" title="Refs" icon="diagram-project" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated.refs`

            Refs records reference IDs associated with this step. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-custom-steps-separated-shared-ste-b51d20ba08f3" title="Shared Step ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.custom_steps_separated.shared_step_id`

            Shared Step ID is the ID of a shared step if this step references one. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same shared step ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `shared_step_id` as a record-level identifier on `TestRailCustomStep`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-estimate-e74fe43a7e6a" title="Estimate" icon="calendar-clock" iconType="sharp-duotone-solid">
            Developer identifier: `tests.estimate`

            Estimate records the planned execution duration for the test. It preserves TestRail's human-readable duration text.

            * **Enables:** compare planned effort across tests and schedule execution using the recorded estimate.
            * **Interpretation:** The provider supplies `estimate` as duration text such as `30s` or `1m 45s`; parse TestRail's units rather than treating the string as an ordinal.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-estimate-forecast-06829005df2c" title="Estimate Forecast" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.estimate_forecast`

            Estimate Forecast records the execution duration forecast from historical test results. It preserves TestRail's predicted duration text for the test.

            * **Enables:** compare forecasted execution effort with the authored estimate and plan test capacity.
            * **Interpretation:** The provider supplies `estimate_forecast` as provider-formatted duration text such as `30s` or `1m 45s`, not an ordinal or sequence.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-id-c06dfbdbfe1e" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.id`

            ID is the unique test identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail test source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail test record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-labels-006d76959950" title="Labels" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.labels`

            Labels records labels associated with the test. TestRail returns objects with id and title. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact labels value attached to each test rail test record.
            * **Interpretation:** The provider supplies `labels` at test rail test granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-labels-id-2f9d7577176f" title="ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.labels.id`

            ID is the unique label identifier. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail label source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail label record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-labels-title-f984ef2be217" title="Title" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.labels.title`

            Title records display name of the label. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact title value attached to each test rail label record.
            * **Interpretation:** The provider supplies `title` at test rail label granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-milestone-id-eeb92964699d" title="Milestone ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.milestone_id`

            Milestone ID is the ID of the associated milestone. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same milestone ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `milestone_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-priority-id-441d59b276a8" title="Priority ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.priority_id`

            Priority ID is the ID of the test priority level. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same priority ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `priority_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-refs-dbcf42d8eb9f" title="Refs" icon="link" iconType="sharp-duotone-solid">
            Developer identifier: `tests.refs`

            Refs records comma-separated reference IDs linking to external systems such as issue trackers. It preserves the external requirement or defect references attached to the test record.

            * **Enables:** trace the requirements or defects named by refs from the test record to their external records.
            * **Interpretation:** The provider supplies `refs` as a delimited set of external references per test record; the connector does not verify that each referenced record exists.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-run-id-7aefef2e5833" title="Run ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.run_id`

            Run ID is the ID of the parent test run. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same run ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `run_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-section-id-a1f744729ea4" title="Section ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.section_id`

            Section ID is the ID of the section the test case belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same section ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `section_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-status-id-0f554c3e1346" title="Status ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.status_id`

            Status ID identifies current status of the test (e.g., 1=Passed, 2=Blocked, 3=Untested, 4=Retest, 5=Failed). It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same status ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `status_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-template-id-c47f3c5b2168" title="Template ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.template_id`

            Template ID is the ID of the template used by the test case. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same template ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `template_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-title-0a32560e9b8b" title="Title" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.title`

            Title records title of the test, typically inherited from the test case. It keeps the exact text, label, or authored value needed to interpret the record.

            * **Enables:** inspect the exact title value attached to each test rail test record.
            * **Interpretation:** The provider supplies `title` at test rail test granularity in the format stated by its description; omitted or redacted content remains unknown.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-tests-type-id-af2540287a27" title="Type ID" icon="circle-check" iconType="sharp-duotone-solid">
            Developer identifier: `tests.type_id`

            Type ID is the ID of the test type (e.g., Automated, Functionality, Performance). It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match test records to provider records that carry the same type ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `type_id` as a record-level identifier on `TestRailTest`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>
        </AccordionGroup>
      </Accordion>

      <Accordion id="provider-permission-tap-testrail-users-767c6641d23f" title="Users" icon="people-group" iconType="sharp-duotone-solid">
        Developer identifier: `users`

        Users contain all TestRail users.

        * **Enables:** resolve TestRail identities referenced by test-management records.
        * **Scope:** Reads the declared collection through `GET /index.php?/api/v2/get_users` as a full snapshot. Results contain only TestRail records visible to the configured account and each required parent project, suite, or run.

        <AccordionGroup>
          <Accordion id="provider-permission-field-testrail-users-assigned-projects-034557f882cf" title="Assigned Projects" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.assigned_projects`

            Assigned Projects records IDs of projects assigned to the user. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail user record to the provider-reported person or account represented by assigned projects.
            * **Interpretation:** The provider supplies `assigned_projects` as identity or attribution context on each test rail user record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-email-818b59f9e81a" title="Email" icon="comment-dots" iconType="sharp-duotone-solid">
            Developer identifier: `users.email`

            Email records email address of the user. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail user record to the provider-reported person or account represented by email.
            * **Interpretation:** The provider supplies `email` as identity or attribution context on each test rail user record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-email-notifications-72566015d381" title="Email Notifications" icon="comment-dots" iconType="sharp-duotone-solid">
            Developer identifier: `users.email_notifications`

            Email Notifications indicates whether the user receives email notifications. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select user records for which the provider reports email notifications as true or false.
            * **Interpretation:** The provider supplies `email_notifications` as a boolean per test rail user record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-group-ids-fba570d82357" title="Group IDs" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.group_ids`

            Group IDs identifies IDs of groups the user belongs to. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match user records to provider records that carry the same group ids, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `group_ids` as a record-level identifier on `TestRailUser`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-id-9a8ca86abf58" title="ID" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.id`

            ID is the unique identifier for the user. It supplies the declared record identity used when repeated ingestions represent the same source row.

            * **Enables:** recognize repeated ingestions of the same test rail user source row before constructing its represented state.
            * **Interpretation:** The provider supplies `id` at one value per test rail user record, and `x-transformDedupKey` explicitly marks it as the record key.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-is-active-513bcb323028" title="Is Active" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.is_active`

            Is Active indicates whether the user account is currently active. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select user records for which the provider reports is active as true or false.
            * **Interpretation:** The provider supplies `is_active` as a boolean per test rail user record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-is-admin-c405f12dabd8" title="Is Admin" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.is_admin`

            Is Admin indicates whether the user has administrator privileges. It documents the access-related value reported for this object or membership.

            * **Enables:** describe the provider-reported is admin attached to each test rail user record.
            * **Interpretation:** The provider supplies `is_admin` at test rail user granularity. It describes provider-reported context and does not prove effective access beyond the returned record.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-mfa-required-9f61bbb52ba9" title="MFA Required" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `users.mfa_required`

            MFA Required indicates whether multi-factor authentication is required for the user. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select user records for which the provider reports MFA required as true or false.
            * **Interpretation:** The provider supplies `mfa_required` as a boolean per test rail user record; false and missing are distinct when the field is optional.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-name-0c53f6938182" title="Name" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.name`

            Name records display name of the user. It keeps the provider-reported person or account context attached to the record.

            * **Enables:** attribute the test rail user record to the provider-reported person or account represented by name.
            * **Interpretation:** The provider supplies `name` as identity or attribution context on each test rail user record. Names and contact values can change and are not stable identifiers unless the provider documents them as such.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-role-b9ef4528c383" title="Role" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `users.role`

            Role states name of the user's assigned role. It documents the access-related value reported for this object or membership.

            * **Enables:** describe the provider-reported role attached to each test rail user record.
            * **Interpretation:** The provider supplies `role` at test rail user granularity. It describes provider-reported context and does not prove effective access beyond the returned record.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-role-id-20d4c32e4af6" title="Role ID" icon="shield-check" iconType="sharp-duotone-solid">
            Developer identifier: `users.role_id`

            Role ID is the ID of the role assigned to the user. It is needed to resolve references that repeat the same provider identifier.

            * **Enables:** match user records to provider records that carry the same role ID, without assuming that this field alone makes every row unique.
            * **Interpretation:** The provider supplies `role_id` as a record-level identifier on `TestRailUser`. It is not a uniqueness guarantee unless a connector directive says so.
          </Accordion>

          <Accordion id="provider-permission-field-testrail-users-sso-enabled-993a81f2dfbc" title="SSO Enabled" icon="people-group" iconType="sharp-duotone-solid">
            Developer identifier: `users.sso_enabled`

            SSO Enabled indicates whether single sign-on is enabled for the user. It preserves the provider-reported yes-or-no condition for this record.

            * **Enables:** select user records for which the provider reports SSO enabled as true or false.
            * **Interpretation:** The provider supplies `sso_enabled` as a boolean per test rail user record; false and missing are distinct when the field is optional.
          </Accordion>
        </AccordionGroup>
      </Accordion>
    </AccordionGroup>
  </Tab>

  <Tab title="Troubleshooting">
    | Error              | Meaning             | Solution                    |
    | ------------------ | ------------------- | --------------------------- |
    | `401 Unauthorized` | Invalid credentials | Verify email and API key    |
    | `403 Forbidden`    | API not enabled     | Enable API in user settings |
    | `404 Not Found`    | Wrong endpoint      | Check URL and API version   |

    **[TestRail API](https://support.testrail.com/hc/en-us/articles/7077083596436-Introduction-to-the-TestRail-API)** — Official API documentation
  </Tab>
</Tabs>
