Product Release 2024-07-18

by Margot Lepizzera

✨ Feature Highlights

Ignore Alerts on Special Dates

There are many scenarios where certain days are going to be anomalies no matter what, and we want to avoid sifting through a sea of alerts to classify them as normal ! We've recently introduced a new functionality to exclude specific days from alerting and anomaly detection.

When creating monitors with a time window setting you can now specify calendars for which you want to exclude dates from anomaly detection. The Calendar list comes preloaded with public holidays calendars for multiple countries as well as other specific calendars to ignore Sundays or Weekends, while still ensuring the graph stays complete for these dates !

When a calendar is active on the monitor points that fall out of the range will be displayed as grey and won't trigger an alert, they will also indicate that the date is being excluded because of a specific calendar !

Custom Calendars

Sometimes standard calendars don't suit everyone's needs! You can also create your own custom calendars via the API

Programmatically Create and Maintain Sifflet Sources

You can now programmatically create and maintain your Sifflet sources thanks to our new sets of API endpoints for credentials and sources. These new endpoints make it easier for your teams to ensure the appropriate data observability coverage by simplifying the roll out of Sifflet on your data stack.

Learn more about the credentials and sources API endpoints

🛠 Fixes

  • Fixed a bug that was preventing the + button from disappearing on the lineage after the deletion of declared assets

App version: v289-290

Product Release 2024-07-15

by Margot Lepizzera

✨ Feature Highlights

Support for empty and whitespace strings in Null monitors

For textual fields, you can now select what values to check in Null monitors. This capability is provided both for monitors set up in the UI or in Monitors as Code (via the new nullValues parameter).

See Parameters list and example for every monitor type for more details.

🛠 Fixes

  • The Fivetran integration will now skip connectors for which metadata can't be retrieved instead of generating an error.

App version: v285-286

Product Release 2024-07-11

by Mahdi Karabiben

✨ Feature Highlights

Power BI: Support for Dynamic Data Sources

Sifflet now supports the usage of dynamic parameters in Power BI source expressions, allowing the generation of accurate lineage even for dynamic data sources.

Amazon QuickSight and Fivetran URIs

Sifflet now supports URIs for Amazon QuickSight and Fivetran. You can now consequently tie declared assets to existing Amazon QuickSight and Fivetran assets, allowing you to go one step further in comprehensive data observability with end-to-end lineage and data cataloging.

Read more about Amazon QuickSight and Fivetran URIs.

Edit Incidents' Names

You can now edit your incidents' names to have them reflect the data quality issue at stake even more accurately than before.

Read more about incidents

App version: v282-284

Product Release 2024-07-02

by Mahdi Karabiben

✨ Feature Highlights

Batch Actions on Incidents

Managing Incidents is a big focus area for Sifflet at the moment as we know a lot of our customers want to manage incidents at scale! The new and improved Incident Search page allows you to now batch edit the Severity, Status and Assignments of incidents.


🔥 Improved Monitors as Code: For Loops and Templates

Many improvements to Monitors as Code today !

Alternative to Monitor UUIDs when defining monitors: friendlyId

Before:

For each monitor a UUID needed to be specifiedid: 7edf1177-1a3c-4d71-b85f-e38b773735b4 which was often difficult since a UUID had to be generated outside of the yaml.

friendlyId alternative

friendlyId is an alternate ID that only needs to be unique per dataset, this means a dataset cannot have two monitors with the same friendlyId.

kind: Monitor
version: 1
friendlyId: customerEmailUnique
datasets:
- name: sales
  datasource:
    name: mySqlDatabase
...

The above monitor has a friendlyId customerEmailUnique , only one of those monitors can be added to the sales table in our mysqlDatabase.

Alternative method to reference Datasets: URIs

Before: Referencing Datasets required knowledge of information specific to Sifflet.

Sifflet ID of dataset:

datasets:
- id: 70217023-1a89-4c0b-9b6a-c85192c918b3

Sifflet dataset name with either the id or the name of the datasource

datasets:
- name: Prices
  datasource: 
    name: BigQuery Data warehouse ## OR
    id: ce3e9dd9-b007-42b0-b884-8c419f7f6daa

Now with URIs

URIs are a sifflet agnostic way to define dataset. Find out more about URIs

datasets:
- uri: snowflake://xyz12345.eu-central-1/DATABASE.SCHEMA.TABLE

📘

URIs

You can retrieve URIs from the Catalog's Asset Page.

Multiple Monitors Per File

Before : One file per Monitor

Now : You can now separate monitors with the --- yaml separator and have multiple monitors on the same page

kind: Monitor
version: 1
friendlyId: customer_id_format_check
name: Matches Regex Monitor on CUSTOMER_ID
...

---

kind: Monitor
version: 1
friendlyId: customer_id_duplicate_check
name: Unicity Monitor on CUSTOMER_ID

Templates

Before Each monitor definition needed to contain all the information, this meant a lot of information had to be duplicated, such as tags or alerting.

Now Templates enable the definition of parameters that can be imported into new monitor definitions

Simply define a partial (or complete ) monitor definition with a templateName

templateName: missionCriticalTags
tags:
- name: Mission Critical
notifications:
- kind: Email
  name: [email protected]
- kind: Slack
  name: Alerts
  id: dd6f06ec-fab1-4a87-9544-b113f496d61d

---

templateName: Unimportant
tags:
  - name: Unimportant

This templateName can then be extended

kind: Monitor
version: 1
friendlyId: myMonitor
name: My Monitor
extends:
- missionCriticalTags
...

---

kind: Monitor
version: 1
friendlyId: myOtherMonitor
name: My Other Monitor
extends:
- Unimportant
...

For Loops

Before Once again before each monitor had to be defined individually! However there are scenarios where I want to deploy the same monitor on multiple tables !

Now For loops allow you to define monitors on multiple tables easily !

for each dataset T:
  datasets:
  - uri: snowflake://sifflet-enterprise/DEMO.SE_ENV.ORDERS
  - uri: snowflake://sifflet-enterprise/DEMO.SE_ENV.CUSTOMERS
  - uri: snowflake://sifflet-enterprise/DEMO.SE_ENV.STG_CUSTOMERS
  monitors:
  - kind: Monitor
    version: 1
    friendlyId: customer_id_format_check
    name: "[${T.name}]Format monitor on CUSTOMER_ID" 
    description: ""
    incident:
      severity: Low
      message: ""
    parameters:
      kind: FieldFormat
      field: CUSTOMER_ID
      format:
        kind: Regex
        regex: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"

  ...

Wildcards and excludes

use include with * wildcards in your uris to apply to many datasets at the same time! then use exclude to exclude specific datasets

for each dataset T:
  datasets:
    include:
    - uri: snowflake://xyz12345.eu-central-1/DATABASE.SCHEMA.*
    - uri: bigquery:*.*.*ORDERS
    exclude:
    - uri: snowflake://xyz12345.eu-central-1/DATABASE.SCHEMA.MYTABLETOEXCLUDE

Dynamic Names

name: "[${T.name}]Format monitor on CUSTOMER_ID"

Use ${T.name} to reference the name of your table.

🛠 Fixes

  • Fixed an issue where Sifflet pages would require a manual refresh to operate as expected after a new release
  • Fixed an issue where in some instances, a recently edited user could not be saved
  • Fixed an issue where some domains would not show up in the permissions modal.

App version: v279-281

🛠 Fixes

  • Fixed an issue in Data Quality as Code and APIs where tag name validation was case sensitive despite tag names being case insensitive.
  • Improved the experience around the release of new versions of the Sifflet application to make it less disruptive for users.

App version: v278

✨ Feature Highlights

Access Reference Assets Details for Improved Data Observability Coverage

You can now click reference assets on the lineage to view details such as the asset name. This makes it simpler to identify where these assets are located (i.e. in which database, schema, etc.) and consequently create the corresponding Sifflet data sources, enhance your overall data observability coverage.

Read more reference assets

🛠 Fixes

  • Fixed a bug that caused lineage inconsistencies for dbt assets following certain data source runs.

App version: v275-277

✨ Feature Highlights

Describe Monitors with AI

We've introduced the capability to generate Monitor names and descriptions with AI. This will ensure you have highly descriptive descriptions and names for your monitors with low effort!

How? Simply select the AI icon in the text fields to write custom monitors. You will need to regenerate when monitors are now.

Tip: Not satisfied with the description, click it again and it will change!

Note: This generation is currently not aware of other descriptions and monitor names you have set on other monitors. Future versions aim to leverage these and make it even easier to standardise naming practices.


Need Help? Send Us a Message From Within the Sifflet App!

You can now reach out to the Sifflet team directly from within your app by clicking your user gravatar at the top right end corner of your application and hitting the Give us feedback entry in the menu. A form will show up letting you enter your name, email address, message to the Sifflet team, and even take a screenshot. You can use this to report bugs, share feedback about the application or even ask for help. The Sifflet team will follow up with you shortly after you submit your message!

App version: v274

✨ Feature Highlights

Snowflake key-pair authentication

Sifflet now supports key pair authentication for Snowflake, offering enhanced authentication security as an alternative to using a username and password.

To use key pair authentication, create the key pair by following the guide provided by Snowflake and then use the private key when adding the credentials to Sifflet as detailed in our documentation.

dbt build support

You can now use the dbt build command to generate the dbt artifacts to send to Sifflet, ensuring that you have full flexibility in configuring your dbt jobs. Refer to the dedicated documentation page for more details regarding our dbt Core integration.

🛠 Fixes

  • Fixed a behaviour where Monitors run with BigQuery repeated fields did not behave as expected
  • Fixed and Improved regexes generated via the AI suggestion feature. Fixed a case where the regex generated did not work correctly on Snowflake.

App version: v272-273

Product Release 2024-06-17

by Margot Lepizzera

✨ Feature Highlights

End-To-End Data Observability With Declarative Assets & Lineage

Sifflet already offers a large number of built-in integrations spanning your entire data pipelines’ stack. These integrations automatically collect metadata and lineage information and make it available in the Data Catalog.

However, there may be instances where you need to programmatically declare certain data pipeline assets. This is essential for achieving end-to-end data observability, especially for custom scripts, data applications, or assets from technologies not yet directly supported by Sifflet (e.g., Salesforce, SAP, Metabase, etc.).

The declarative framework now allows you to programmatically push any assets and lineage data to Sifflet. This enables you to document, govern, and visualize lineage across your entire data stack, regardless of asset type or technology. This new capability removes any limitations on the assets that can be integrated with Sifflet, paving the way for complete end-to-end data observability.

Read more about declarative assets and lineage

Changes on IDs and URIs for Cleaner Asset Pages

In the context of changes done for the declarative framework, you can now access assets' URI from the context menu located in the top right end corner of your asset pages.

Asset IDs that used to be in the Overview tab are now available in the same context menu, ensuring the asset page remains focused on the content that matters the most to users.

Finally, source IDs that also used to be in the Overview tab were entirely removed from asset pages and are now available on source pages.

Read more about asset pages

App version: v271

Product Release 2024-06-14

by Margot Lepizzera

Small Changes

  • In the process of adding batch actions and to avoid spam, we have opted to stop sending Incident un-assignment emails.

App version: v270