Data Model
The cmdlet models the Jira API as relational tables, views, and stored procedures, allowing database-like connectivity to Jira Cloud accounts or Jira Server instances.
Accessing Custom Fields
By default, the table and view schemas describe the column behavior of system fields for Jira entities. To access Custom Fields for Issues, as well as system fields, you can set IncludeCustomFields in the connection string. You can also extend schemas to configure access to Custom Fields.
Customizing Schemas
The schemas are defined in .rsd configuration files. These files have a simple format that makes them easy to extend; for example, to gain more control over custom fields.
To save a schema to an .rsd file, call the CreateSchema stored procedure; for example, with the IncludeCustomFields connection property set.
To use custom schemas, set the Location property to the folder containing the .rsd files. The schemas included with the cmdlet are located in the db subfolder of the installation folder.
Controlling Column Names
You can use the following properties to gain more control over column names:
- UseSimpleNames: boolean determining if simple names should be used for columns.
- UseDisplayNames: boolean determining if the display names for custom fields should be used instead of the API names.
Handling Key Column Operators
By default, all supported operators are passed directly to the Jira API, enabling efficient server-side filtering. However, when queries include invalid Id or Key values, this approach can lead to inconsistent outcomes. On Jira Cloud, depending on the UseJqlSearchEndpoint setting, invalid filters may return 0 results instead of throwing an error, whereas on Jira Data Center they may cause API errors. The KeyColumnOperators connection property allows you to control this behavior.
By default, the KeyColumnOperators is set to Server-Side.
- All supported operators are sent as-is to the Jira API.
- On legacy endpoints (when UseJqlSearchEndpoint is set to False) or on Jira Data Center, this may cause API errors if invalid filter values are provided.
- On Jira Cloud with UseJqlSearchEndpoint set to true (the default), the API does not throw an error for filters with invalid keys or IDs; instead, it returns 0 results. For example, a JQL filter such as id > 123 (when 123 is not a valid issue ID) will yield 0 results rather than failing. This behavior can lead to inconsistent outcomes if you expect a complete result set.
To ensure consistent results, you can set the KeyColumnOperators connection property to Client-Side. In this mode, the following operators applied to the Id and Key columns are handled client-side by the cmdlet rather than being included in the JQL sent to the Jira API:
- Logical operator: OR
- Comparison operators: IN, NOT IN, >, >=, <, <=, !=
By handling these operators client-side, the cmdlet avoids strict server-side filtering rules that could cause the entire query to fail or return zero results due to a single invalid value. However, enabling this property can impact performance:
- For IN filters, the cmdlet will execute a separate request for each value, potentially increasing query execution time.
- For other filters, since the cmdlet retrieves all records before applying the filter client-side, queries may take longer due to the additional processing.