Version #3546
New:
Support for Window Functions (OVER with PARTITION BY) (3804)
C9QL now supports Window Functions using the OVER clause with optional PARTITION BY, allowing aggregate calculations across related rows without collapsing them. This is ideal for use cases such as totals, averages, or counts within groups—while preserving the full dataset structure.
Supported functions include:
- SUM(column) OVER (PARTITION BY ...)
- AVG(column) OVER (PARTITION BY ...)
- COUNT(*) OVER (PARTITION BY ...)
- MAX(column) OVER (PARTITION BY ...)
-
MIN(column) OVER (PARTITION BY ...)
You may also omit PARTITION BY to calculate across the entire result set. Multiple window functions are supported within a single query.
Note: ORDER BY inside OVER() and ranking functions like ROW_NUMBER, RANK, and DENSE_RANK are not yet supported.
This enhancement enables more powerful and flexible analytical queries within C9QL, improving support for real-time business insights.
Service Provider-Initiated SAML Authentication (3728)
Knowi now supports Service Provider (SP)-Initiated SAML Authentication, allowing users to begin the login process directly from Knowi’s login page—without needing to initiate login from their identity provider (IdP).
Key Capabilities:
- Direct login initiation from Knowi: Users can go directly to the Knowi login page to start authentication via SAML.
- Organization-based routing: Users enter their configured Organization Name to identify which SAML settings to use.
- Multi-tenant support: Supports multiple SAML configurations across customers in a single Knowi instance.
Supported Login Methods:
- Direct URL
Navigate to: https://[your-knowi-domain]/saml/login/[organization-name] to start login directly. - Login Page Button
From the login page, select Login with SAML, enter the organization name in the popup, and proceed with authentication. - Email Field Shortcut
Enter the organization name in the email field of the login box and click Login to initiate SAML automatically.
Setup Requirements:
- A valid SAML configuration must already exist in your workspace.
- You must configure a unique Organization Name in the SAML settings.
- Admin privileges and an enterprise license with SAML enabled are required.
- The IdP may need to support SP-initiated SAML depending on provider settings.
Once configured, both SP-initiated and IdP-initiated SAML login methods will be available simultaneously, offering full flexibility for user authentication.
- New Report Sharing Permission (3871): A new permission under the Reports section now allows roles to control the ability to share reports with other users or groups. When enabled, users with the role can grant access to specific reports directly from the reporting interface.
-
Date/Time Filters Continuous Time (3843): This filter setting treats time ranges as continuous—starting from the selected start time (inclusive) to the end time (exclusive)—to more accurately reflect expected behavior. Runtime parameters used as filters now automatically require Continuous Time to be enabled. Additionally, time values are now passed differently behind the scenes to improve filtering precision.
- Multi-Level Pivot Row Styling (3809): Pivot tables now support layered styling for multiple row fields. Users can customize font color, font size, and background color for each row level—starting with top-level parent rows, and extending to subcategories (e.g., Sub Category, Sub Category 2, etc.) as more row fields are added. These styling options dynamically appear under Column and Header Settings based on the number of row fields selected. This enhancement allows for clearer visual distinction between row hierarchies in complex pivot configurations.
-
Revision history for assets now includes history for other users modifications. (3838)
FIXED - Fixed conditional formatting bug on row level formatting. (3825)
- Fixed widget data page not displaying. (3849)
- Fixed repeating widgets within Powerpoint export. (3776)
- Google Sheets Datasource:
- Fixed an issue where importing certain Google Sheets with uneven row lengths caused an IndexOutOfBoundsException. The import process now handles rows with varying column counts gracefully. (3863)
- Fixed issue where refreshing the access token on the datasource does not save the new token. (3859)