Mage-ai

Latest version: v0.9.74

Safety actively analyzes 682404 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 10

0.9.41

Not secure
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/404e4e16-d656-4b9a-894b-f0f418f6347a" width="45%"/>
</div>

What's Changed

๐ŸŽ‰ Exciting New Features

Workspace Lifecycle Management

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/6e0552c5-8fcc-4256-bd56-1f1464fabeec" width="65%"/>
</div>

๐ŸŽ‰ Mage now provides support for managing the workspace lifecycles in Kubernetes! That means you can control _how_ Mage is deployed, start-to-finish, with the following options:

1. Auto-termination
2. Pre-start scripts
3. Post-start scripts

Read more about lifecycle management [here](https://docs.mage.ai/production/developing-in-the-cloud/workspaces/kubernetes#lifecycle-management) and give it a shot today!

_by dy46 in https://github.com/mage-ai/mage-ai/pull/3836_

Elasticsearch Data Integration Destination

Mage now supports writing data to Elasticsearch for all of your search & LLM needs! ๐Ÿง™๐Ÿปโ€โ™‚๏ธ

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/ac7cc35d-5a59-4b1b-957a-281a2ad99a5c" width="65%"/>
</div>

_by Luishfs in https://github.com/mage-ai/mage-ai/pull/3756_

Block Detach for Shared Pipelines

Ok, this one is hugeโ€” say you have a block in multiple pipelines, but you need to change the logic in a single block instance... That sounds tricky, right? ๐Ÿค”

Now you can with _Block Detach_! Simply click _ Pipelines_ on the block, then _Detatch_ to create a clone of the block in your current pipeline!

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/02c3f0f7-6c6d-4996-9bb6-2f12b963dd4c" width="75%"/>
</div>

_by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3816_

๐Ÿ› Bug Fixes

* Fix disabled keyboard shortcuts due to Pipeline Runs table keyboard nav by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3833
* Allow admin users to read attributes on users list by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3837
* Fix `libodbc` conflicts in Dockerfile by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3840 and https://github.com/mage-ai/mage-ai/pull/3845
* Fix save block functionality after pipeline execution by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3839
* Fix GHE by dy46 in https://github.com/mage-ai/mage-ai/pull/3841
* Fix dynamic children not running and its downstream by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3847
* Only fetch spark jobs if compute is enabled by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3851
* Remove `pymssql` dependency by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3859
* Reposition file browser context menu by edmondwinston in https://github.com/mage-ai/mage-ai/pull/3819
* Send notification on block run intialization failure by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3861
* Update `authorize_query` check by dy46 in https://github.com/mage-ai/mage-ai/pull/3846

๐Ÿ’… Enhancements & Polish

* Make current time button transparent by default by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3829
* Expanded our vocabulary by MageKai in https://github.com/mage-ai/mage-ai/pull/3856
* Added magical nouns by MageKai in https://github.com/mage-ai/mage-ai/pull/3857
* Improve app header styling by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3849
* Add `ctrl/cmd + click` keyboard shortcut for selecting pipeline run rows by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3843
* Use read_namespaced_job instead of read_namespaced_job_status by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3863
* Support `text/csv` response type in API source by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3864
* Automatically clean up cached data integration files by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3869
* Bump snowflake-connector-python version by dy46 in https://github.com/mage-ai/mage-ai/pull/3871 and https://github.com/mage-ai/mage-ai/pull/3873
* Improve base DI destination and add unit tests by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3875
* Add `aws_session_token` support to `get_aws_boto3_client` by nyc-de in https://github.com/mage-ai/mage-ai/pull/3877
* Add clone action to version control by dy46 in https://github.com/mage-ai/mage-ai/pull/3878
* Added test connection and new index naming by Luishfs in https://github.com/mage-ai/mage-ai/pull/3848
* Make sure file browser context menu is always fully visible in the viewport when open by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3855

New Contributors

* nyc-de made their first contribution in https://github.com/mage-ai/mage-ai/pull/3877

**Full Changelog**: https://github.com/mage-ai/mage-ai/compare/0.9.38...0.9.41

0.9.38

Not secure
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/87627328-da4d-40e9-9367-a6cf33fc898b" width="65%"/>
</div>

What's Changed

๐ŸŽ‰ Exciting New Features

๐Ÿง‘โ€๐Ÿ’ป Side-by-side block view

Your Mage development workflow just got a _whole_ lot more efficient. Starting today, you can view blocks side-by-side for twice the editing power! Check this one out to improve your DevEx and make more data magic! Simply click the "side-by-side" icon in the center of the editor to get started!
</br>

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/c01dcd4c-9135-430d-8cee-acbbc1101241" width="70%"/>
</div>

</br>

_by tommydangerous in [https://github.com/mage-ai/mage-ai/pull/3804](https://github.com/mage-ai/mage-ai/pull/3804)_

๐Ÿงฑ Support for `dbt-dremio`

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/d4c781f0-433c-461f-931f-5ee51b5ecd0e" width="65%"/>
</div>

</br>

Dremio users, rejoice! You can now execute dbt models in you lakehouse thanks to support for the `dbt-dremio` package.

_by dy46 in [https://github.com/mage-ai/mage-ai/pull/3760](https://github.com/mage-ai/mage-ai/pull/3760)_

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ Support Github Enterprise authentication

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/d04a5fd0-e743-4135-90fb-cd2445807fdf" width="65%"/>
</div>

</br>

An often-requested feature, Mage now supports Github Enterprise authentication! ๐Ÿ’ฅ

_by dy46 in [https://github.com/mage-ai/mage-ai/pull/3817](https://github.com/mage-ai/mage-ai/pull/3817)_

๐Ÿค– Support auto termination in workspace

Mage now supports _auto-termination_ checks, which will run once every sixty seconds. This can be used to auto start/stop k8s workspaces. Configure it when creating your workspace to get started!

<img width="748" alt="Screenshot 2023-10-24 at 7 22 26 PM" src="https://github.com/mage-ai/mage-ai/assets/14357209/1f147dbf-eb42-48a5-a5bb-01abc0cb84e8">


_by dy46 in [https://github.com/mage-ai/mage-ai/pull/3721](https://github.com/mage-ai/mage-ai/pull/3721) and [https://github.com/mage-ai/mage-ai/pull/3751](https://github.com/mage-ai/mage-ai/pull/3751)_

โฐ Show server time in app

This PR adds a new current time display in the top right of the app header. By default, the time display shows in the UTC format, but if you click on the time display, a dropdown menu shows up:

</br>

<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/a11ae6b2-80ab-4696-a237-a50fd9b9c22e" width="50%"/>
</div>

</br>

Nice! Frontend UX improvements coming in clutch!

_by anniexcheng in [https://github.com/mage-ai/mage-ai/pull/3785](https://github.com/mage-ai/mage-ai/pull/3785)_


๐Ÿ› Bug Fixes

* Fix aws secrets circular dependency by dy46 in [https://github.com/mage-ai/mage-ai/pull/3783](https://github.com/mage-ai/mage-ai/pull/3783)
* Fix adding dbt block with mage_secret_var by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3786](https://github.com/mage-ai/mage-ai/pull/3786)
* Fix botocore library pickle error in pipeline scheduler by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3788](https://github.com/mage-ai/mage-ai/pull/3788)
* Incorrect method call on PostgreSQL close connection by tommydangerous in [https://github.com/mage-ai/mage-ai/pull/3791](https://github.com/mage-ai/mage-ai/pull/3791)
* Update block policy by johnson-mage in [https://github.com/mage-ai/mage-ai/pull/3797](https://github.com/mage-ai/mage-ai/pull/3797)
* Fix `DISABLE_NOTEBOOK_EDIT_ACCESS` variable by dy46 in [https://github.com/mage-ai/mage-ai/pull/3796](https://github.com/mage-ai/mage-ai/pull/3796)
* Fix GCS `listdir` recursive bug by luizarvo in [https://github.com/mage-ai/mage-ai/pull/3807](https://github.com/mage-ai/mage-ai/pull/3807)
* Fix `IndexError` in upstream dbt block by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3808](https://github.com/mage-ai/mage-ai/pull/3808)
* Redshift: Use `TIMESTAMPTZ` column type for datetimes by eofs in [https://github.com/mage-ai/mage-ai/pull/3814](https://github.com/mage-ai/mage-ai/pull/3814)
* Serialize `np.ndarray` before exporting to postgres by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3821](https://github.com/mage-ai/mage-ai/pull/3821)
* Refactor workspace by dy46 in [https://github.com/mage-ai/mage-ai/pull/3811](https://github.com/mage-ai/mage-ai/pull/3811)
* Initialize `db_connection` session before interpolating repo config by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3824](https://github.com/mage-ai/mage-ai/pull/3824)
* Fix code block header overflow menu by tommydangerous in [https://github.com/mage-ai/mage-ai/pull/3832](https://github.com/mage-ai/mage-ai/pull/3832)
* Fix `WorkspaceConfig` default by dy46 in [https://github.com/mage-ai/mage-ai/pull/3784](https://github.com/mage-ai/mage-ai/pull/3784)

๐Ÿ’… Enhancements & Polish

* Allow specifying credentials info in BigQuery source and dest by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3790](https://github.com/mage-ai/mage-ai/pull/3790)
* Support Redshift Serverless by wangxiaoyou1993 in [https://github.com/mage-ai/mage-ai/pull/3823](https://github.com/mage-ai/mage-ai/pull/3823)
* Hide `mage-repo` remote by dy46 in [https://github.com/mage-ai/mage-ai/pull/3806](https://github.com/mage-ai/mage-ai/pull/3806)
* Added Custom Spark Cluster by KamarulAdha in [https://github.com/mage-ai/mage-ai/pull/3812](https://github.com/mage-ai/mage-ai/pull/3812)
* Improved Slack notification design by hanslemm in [https://github.com/mage-ai/mage-ai/pull/3778](https://github.com/mage-ai/mage-ai/pull/3778)
* Add total execution time to Pipeline Runs table by anniexcheng in [https://github.com/mage-ai/mage-ai/pull/3801](https://github.com/mage-ai/mage-ai/pull/3801)
* Case sensitive column names in DI SQL destinations by Luishfs in [https://github.com/mage-ai/mage-ai/pull/3685](https://github.com/mage-ai/mage-ai/pull/3685)

๐Ÿ˜Ž New Contributors

* KamarulAdha made their first contribution in [https://github.com/mage-ai/mage-ai/pull/3812](https://github.com/mage-ai/mage-ai/pull/3812)
* eofs made their first contribution in [https://github.com/mage-ai/mage-ai/pull/3814](https://github.com/mage-ai/mage-ai/pull/3814)
* hanslemm made their first contribution in [https://github.com/mage-ai/mage-ai/pull/3778](https://github.com/mage-ai/mage-ai/pull/3778)
* edmondwinston made their first contribution in [https://github.com/mage-ai/mage-ai/pull/3820](https://github.com/mage-ai/mage-ai/pull/3820)

**Full Changelog**: [https://github.com/mage-ai/mage-ai/compare/0.9.35...0.9.38](https://github.com/mage-ai/mage-ai/compare/0.9.35...0.9.38)

0.9.35

Not secure
<center>
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/a9bd848f-d0f7-4de3-859c-71c552a110f5" width="65%"/>
</div>
</center>

What's Changed

๐ŸŽ‰ Exciting New Features

๐Ÿ™‡โ€โ™‚๏ธ The Great Pipeline Unification

Perhaps not as momentus as [The Second Great Unification](https://en.wikipedia.org/wiki/Unification_of_theories_in_physics), *this* unification is much more useful for data pipelines! Data Integration sources & destinations can now be added as blocks in batch pipelines! ๐Ÿคฏ

**What does this mean?** Using Mage, you can now perform integration (extract), transformation, and loading in the SAME pipeline using Singer sources and your favorite tools (dbt, Python, SQL)! Read more in our docs [here](https://docs.mage.ai/data-integrations/batch-pipelines).

This is like having Fivetran/Airbyte, dbt, _and_ a jupyter notebook all-in-one WITH engineering best practices built-in!

<center>
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/bcb185a8-bbf7-4cb6-9161-641184203212" width="50%"/>
</div>
</center>

๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Interactions - a no-code UI for configuring data pipelines

Another _huge_ update, Mage now let's you build templates to unlock data _at scale_. You can configure data pipelines that are fully customizable for stakeholders and consumers. Read more about interactions [here](https://docs.mage.ai/interactions/overview) and get started building today!

This functionality will go a long way for democratizing data pipelines and easing data workloads!

<center>
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/e161704c-a175-4b71-8ba4-2aaa3d0b967c" width="50%"/>
</div>
</center>

๐Ÿค“ Granular API Permissions

Mage now supports granular API permissions on ANY action. Each permission can grant read and write operations on specific resources (e.g. API endpoints). One or more roles can be assigned to 1 or multiple users.

**What does this mean?** You can create permissions for your team at the _most granular level possible_. Mage is now completely governable for ANY action. Read more [here](https://docs.mage.ai/authentication/permissions/overview).

<center>
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/96758160-2fd3-40f0-a705-e198cdda9ecf" width="50%"/>
</div>
</center>

๐Ÿฅณ NEW MongoDB CDC Streaming Source

<center>
<div align="center">
<img src="https://github.com/mage-ai/mage-ai/assets/59450879/2053ca17-57a3-40a3-985f-ed12d4d73297" width="50%"/>
</div>
</center>

Mage now supports MongoDB CDC Streaming Sources! A big thanks to emincanoguz11 for the contribution!

*by emincanoguz11 in https://github.com/mage-ai/mage-ai/pull/3716*

๐Ÿ› Bug Fixes

* Fixed imports and removed flake8 check for taps/targets by Luishfs in https://github.com/mage-ai/mage-ai/pull/3740
* Fix fetching roles new for User by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3743
* Fix extracting update statement from SQL by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3749
* Convert schema name to uppercase when `disable_double_quotes` by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3761
* Fix loading data integration sources by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3773

๐Ÿ’… Enhancements & Polish

* Project-wide pipeline run filters by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3659
* Cron expression syntax error display for triggers in code by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3696
* Flyout menu overflow by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3759
* Support upsert in MongoDB streaming sink by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3774
* Support setting token in the header for API trigger by dy46 in https://github.com/mage-ai/mage-ai/pull/3674
* Update Markdown block docs with image support by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3744
* Set attributes from PubSub message to handler dict by fajrifernanda in https://github.com/mage-ai/mage-ai/pull/3736
* Display elapsed time on `datetime` hover rather than UTC by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3739

New Contributors

* fajrifernanda made their first contribution in https://github.com/mage-ai/mage-ai/pull/3736
* emincanoguz11 made their first contribution in https://github.com/mage-ai/mage-ai/pull/3716

**Full Changelog**: https://github.com/mage-ai/mage-ai/compare/0.9.34...0.9.35

0.9.34

Not secure
<div align="center">
<img width="50%" src="https://github.com/mage-ai/mage-ai/assets/59450879/63d9a6c4-5db1-44fe-b46e-ede319ceada7">
</div>

What's Changed

๐ŸŽ‰ Exciting New Features

๐Ÿง  Add support for `dbt-synapse`

This is going to "dbt" amazing! Mage now supports the `dbt-synapse` library, allowing dbt to be executed against the Azure Synapse Data Warehouse. You can read more on the package [here](https://github.com/mage-ai/mage-ai/pull/3657). Excited to see our Azure users make use of this one!

_dy46 in https://github.com/mage-ai/mage-ai/pull/3657_

โ˜๏ธ Added Google Cloud Pubsub as a sink for streaming pipeline

A big shout out to pammusankolli, who recently added Google Cloud Pubsub as a sink for data streaming pipelines! If you're not familiar with PubSub, you can read more [here](https://cloud.google.com/pubsub?hl=en). Be sure to check out the [docs](https://docs.mage.ai/streaming/destinations/google-cloud-pubsub) in Mage to build your next pipeline!

_pammusankolli in https://github.com/mage-ai/mage-ai/pull/3689_

๐Ÿค“ Support HTML tags in Markdown blocks

All of our Markdown enthusiasts will appreciate this one! Previously, Mage's markdown blocks only supported images via this format:


![](https://images.photowall.com/products/57215/golden-retriever-puppy.jpg?h=699&q=85)


Now, Mage supports `<img>` elements with custom sizes in Markdown blocks by providing `width` and `height` attributes like so:


<img src="https://images.photowall.com/products/57215/golden-retriever-puppy.jpg?h=699&q=85" alt="drawing" width="200"/>


Here are some examples:

<div align="center">
<img width="60%" src="https://user-images.githubusercontent.com/8130751/273016163-91d46a77-3fdb-4d20-a9eb-fda72c440667.png">
</div>
<div align="center">
<img width="60%" src="https://user-images.githubusercontent.com/8130751/273017945-08f607cb-204d-44b2-b08b-1ac33ec4276f.png">
</div>

Nice!

_anniexcheng in https://github.com/mage-ai/mage-ai/pull/3692_

๐Ÿ” Added Opensearch Destination

<div align="center">
<img width="70%" src="https://github.com/mage-ai/mage-ai/assets/59450879/5a0a4569-72db-4723-a735-b6710ba3a791">
</div>

Mage now supports OpenSearch as a destination in data integration pipelines! ๐Ÿฅณ

_Luishfs in https://github.com/mage-ai/mage-ai/pull/3719_

๐Ÿ› Bug Fixes

* Hide empty images by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3660
* YAML block language display by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3678
* Add None for block check by dy46 in https://github.com/mage-ai/mage-ai/pull/3677
* Raise exception if there are serialization errors by dy46 in https://github.com/mage-ai/mage-ai/pull/3630
* Fixed Twitter ads imports by Luishfs in https://github.com/mage-ai/mage-ai/pull/3690
* Fixed target-salesforce imports by Luishfs in https://github.com/mage-ai/mage-ai/pull/3688
* Fix git config preserve when `.preferences.yaml` file doesn't exist by dy46 in https://github.com/mage-ai/mage-ai/pull/3693
* Fix MySQL source int comparisonby wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3709
* Suppress secret logs for aws secrets by dy46 in https://github.com/mage-ai/mage-ai/pull/3704
* Update Backfill policy by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3723
* Fix block tests not getting output by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3724
* Remove the requirement for schedule type by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3726
* Check for empty column headers by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3729
* Fixed typo and simplified text for empty dashboard by MageKai in https://github.com/mage-ai/mage-ai/pull/3668

๐Ÿ’… Enhancements & Polish

* Propagate tags of ECS task definition to task executors by gabrieleiacono in https://github.com/mage-ai/mage-ai/pull/3670
* Also search pipeline run event_variables by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3672
* Read AWS secrets from Mage secrets when no ENVs are set by jamesking-github in https://github.com/mage-ai/mage-ai/pull/3607
* Speed up IO MSSQL export method by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3697
* Support `UPDATE` command in raw SQL command by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3705
* Allow customizing batch fetch limit for data integration pipelineby wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3713
* Support using custom Spark sessionby wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3725
* Add activity to status endpoint when requested by dy46 in https://github.com/mage-ai/mage-ai/pull/3708
* Replace runtime variables card list with table by anniexcheng in https://github.com/mage-ai/mage-ai/pull/3703
* Storybook cleanup by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3658

New Contributors

* gabrieleiacono made their first contribution in https://github.com/mage-ai/mage-ai/pull/3670
* anniexcheng made their first contribution in https://github.com/mage-ai/mage-ai/pull/3692

**Full Changelog**: https://github.com/mage-ai/mage-ai/compare/0.9.30...0.9.34

0.9.30

Not secure
<div align="center">
<img width="50%" src="https://github.com/mage-ai/mage-ai/assets/59450879/bd58e276-2671-430f-be66-4dedde8064df">
</div>


What's Changed
๐ŸŽ‰ Exciting New Features

๐ŸŒŠ Streaming: Base Class Overhaul + 8 New Destinations

This. is. huge. With a complete base class re-write, _every_ IO destination is now a streaming destination.

That means you can stream to:
* [BigQuery](https://docs.mage.ai/streaming/destinations/bigquery)
* [ClickHouse](https://docs.mage.ai/streaming/destinations/clickhouse)
* [DuckDB](https://docs.mage.ai/streaming/destinations/duckdb)
* [MSSQL](https://docs.mage.ai/streaming/destinations/mssql)
* [MySQL](https://docs.mage.ai/streaming/destinations/mysql)
* [Redshift](https://docs.mage.ai/streaming/destinations/redshift)
* [Snowflake](https://docs.mage.ai/streaming/destinations/snowflake)
* [Trino](https://docs.mage.ai/streaming/destinations/trino)

And _any_ future destinations added as an IO base. Huge shutout to wangxiaoyou1993 on the herculean effort!

_by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3623_

๐Ÿ‘€ Recently viewed pipelines

Some frontend polish now allows you to see your _Recently Viewed_ pipelines from the overview pageโ€” a nice touch!

<div align="center"> <img width="50%" src="https://user-images.githubusercontent.com/1066980/271766515-bcca0bb8-1cae-49ee-a0eb-fe6bce6d5113.png">
</div>

_by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3633_

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Community: GCS Sensors

pammusankolli deliver's his first contribution by adding a Google Cloud Storage sensor to check if a file exists in a given bucket! Thanks for the addโ€” this will be super useful to our Google platform users!

_by pammusankolli in https://github.com/mage-ai/mage-ai/pull/3651_

๐Ÿงฉ Support syncing Git submodules

A solid improvement to our [Git Sync](https://docs.mage.ai/getting-started/setting-up-git) functionality, you can now sync submodules, too! Just check the Git Sync settings to enable the feature.

<div align="center"> <img width="50%" src="https://user-images.githubusercontent.com/14357209/270447859-9c2220d4-5a67-4e4f-8148-459f539d6954.png">
</div>

_by dy46 in https://github.com/mage-ai/mage-ai/pull/3593_

๐Ÿ”‚ Add always on schedule interval

On user request, we've added an `always_on` interval for scheduled triggers. Always on schedules will trigger the _new_ pipeline run as soon as the _latest_ pipeline run is completed.

Once a pipeline run ends, regardless of whether or not it failed or succeeded, it will start a new run. Let us know if you find that valuable!

_by dy46 in https://github.com/mage-ai/mage-ai/pull/3611_


๐Ÿ› Bug Fixes
* Lazy import dbt block and library by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3608
* Fix invalid keyword argument error when requesting a list from Stripe by jdvermeire in https://github.com/mage-ai/mage-ai/pull/3479
* Fix snowflake output column names by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3612
* Fix charts when trying to change name by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3614
* Fix export_batch_data not accepting tags as a kwarg by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3619
* Handle secret key and uuid whitespace by dy46 in https://github.com/mage-ai/mage-ai/pull/3621
* Fix materializing upstream outputs for dbt by christopherscholz in https://github.com/mage-ai/mage-ai/pull/3617
* Fix memory leak in data integration pipelines by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3641
* Initialize db connection session by dy46 in https://github.com/mage-ai/mage-ai/pull/3609
* Fix auto generating mage_sources.yml for dbt upstream blocks by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3647
* Pipelines list fixes by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3648

๐Ÿ’… Enhancements & Polish
* Add sortable block run columns by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3613
* Clarify components based on UTC time in Overview page by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3615
* Support interpolating pipeline variables in streaming configs by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3616
* Scheduler trigger interval as environment variable setting by PopaRares in https://github.com/mage-ai/mage-ai/pull/3591
* Pipeline runs table (for individual pipelines) updates by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3629
* Reduce dynamic child block at any level by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3634
* Apache Kafka - SASL_PLAINTEXT by Senpumaru in https://github.com/mage-ai/mage-ai/pull/3643
* Support Kafka SASL_SSL SCRAM-SHA-512 authentication by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3649
* Update search_path command by dy46 in https://github.com/mage-ai/mage-ai/pull/3625

New Contributors
* jdvermeire made their first contribution in https://github.com/mage-ai/mage-ai/pull/3479
* PopaRares made their first contribution in https://github.com/mage-ai/mage-ai/pull/3591
* Senpumaru made their first contribution in https://github.com/mage-ai/mage-ai/pull/3643
* pammusankolli made their first contribution in https://github.com/mage-ai/mage-ai/pull/3651

**Full Changelog**: https://github.com/mage-ai/mage-ai/compare/0.9.28...0.9.30

0.9.28

Not secure
<!-- Release notes generated using configuration in .github/release.yml at release/0.9.28 -->

<div align="center">
<img width="50%" src="https://github.com/mage-ai/mage-ai/assets/59450879/dec4df43-3b1a-4f18-87ba-597bfd8a6ff8">
</div>

What's Changed

๐ŸŽ‰ Exciting New Features

๐Ÿซจ Brand new dbt blocks!

One of our _top_ contributors christopherscholz just delivered a _huge_ feature! A completely streamlined dbt Block!

<div align="center">
<img width="50%" src="https://github.com/mage-ai/mage-ai/assets/59450879/c781a298-eebe-4615-8059-9ee2c91f0180">
</div>

Here are some of the highlights:

- Directly integrated into `dbt-core`, instead of calling it via a subprocess, which allows to use all of dbts functionalities
- Use dbt to seed output dataframes from upstream blocks
- Use dbt to generate correct relations e.g. default schema names, which differ between databases
- Use dbt to preview models, by backporting the `dbt seed` command to `dbt-core==1.4.7`
- No use of any mage based database connections to handle the block
- Allows to install any dbt adapter, which supports the dbt-core version
- Moved all code into a single interface called `DBTBlock`
- Doubles as a factory for child blocks `DBTBlockSQL` and `DBTBlockYAML`
- Child blocks make it easier to understand which block does what

There's lots to unpack in this one, so be sure to read more in the PR below and check out our updated [docs](https://docs.mage.ai/dbt/overview).

_by christopherscholz in https://github.com/mage-ai/mage-ai/pull/3497_

โž• Add GCS storage to store block output variables

Google Cloud users rejoice! Mage _already_ supports storing block output variables in S3, but thanks to contributor luizarvo, you can now do the same in GCS!

Check out the PR for more details and read-up on implementation [here](https://docs.mage.ai/design/data-pipeline-management#variable-storage).

_by luizarvo in https://github.com/mage-ai/mage-ai/pull/3597_

โœจ Tableau Data Integration Source

<div align="center">
<img width="65%" src="https://dev3lop.com/wp-content/uploads/2017/04/tableau-software-logo.png">
</div>

Another community-led integration! Thank you mohamad-balouza for adding a Tableau source for data integration pipelines!

<div align="center">
<img width="65%" src="https://user-images.githubusercontent.com/125284049/270114084-b034876e-9ea5-4790-8dbe-a5039a281ff5.png">
</div>

_by mohamad-balouza in https://github.com/mage-ai/mage-ai/pull/3581_

๐Ÿฆ† Add DuckDB loader and exporter templates

Last week, we rolled out _a ton_ of new DuckDB functionality, this week, we're adding DuckDB loader and exporter templates! Be sure to check them out when building your _new_ DuckDB pipelines! ๐Ÿ˜„

<p align="center">
<img width="35%" alt="image" src="https://user-images.githubusercontent.com/5386254/269154636-c2b93d8d-bfde-4323-a498-e16341991ce2.png">
<img width=30% alt="image" src="https://user-images.githubusercontent.com/5386254/269154582-475aa465-6df7-40b5-a8e0-4c1579665b11.png">
</p>

_by matrixstone in https://github.com/mage-ai/mage-ai/pull/3553_

๐Ÿงฑ Bulk retry incomplete block runs

Exciting frontend improvements are coming your way! You can now retry all of a pipeline's incomplete block runs from the UI. This includes all block runs that do not have `completed` status.

<div align="center">
<img width="65%" src="https://github.com/mage-ai/mage-ai/assets/59450879/08c31548-9847-41e1-9dfd-1a8a41d90d77">
</div>




๐Ÿ› Bug Fixes

* Fix using `S3Storage` to store block output variables by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3559 and https://github.com/mage-ai/mage-ai/pull/3588
* Support local timezone for cron expressions by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3561
* Make API middlware set status codes if there's an API key or OAUTH token error by splatcollision in https://github.com/mage-ai/mage-ai/pull/3560
* Fix Postgres connection url parsing by dy46 in https://github.com/mage-ai/mage-ai/pull/3570
* Fix passing in logger for alternative block execution methods by dy46 in https://github.com/mage-ai/mage-ai/pull/3571
* Fix variables interpolation in dbt target by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3578
* Fixed `dbt seed` requiring variables by tommydangerous in https://github.com/mage-ai/mage-ai/pull/3579
* Fix updating of `pipelineRowsSorted` when clearing search query by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3596
* Check yaml serialization before writing variable by dy46 in https://github.com/mage-ai/mage-ai/pull/3598
* Fix `condition_failed` check for dynamic blocks by dy46 in https://github.com/mage-ai/mage-ai/pull/3595

๐Ÿ’… Enhancements & Polish

* Display warning on demo site to prevent users from entering private credentials by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3550
* Update wording for empty pipeline template state by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3557
* Reorder upstream blocks by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3541
* Prioritize using `remote_variables_dir` for variable manager by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3562
* Customize ecs config by dy46 in https://github.com/mage-ai/mage-ai/pull/3558
* Bookmark values minor improvements by johnson-mage in https://github.com/mage-ai/mage-ai/pull/3576
* Speed up bigquery destination in data integration pipeline by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3590
* Allow declared cookies to propagate to resources by hugabora in https://github.com/mage-ai/mage-ai/pull/3555
* Refactor: use generic function to call LLM avoid code duplication by matrixstone in https://github.com/mage-ai/mage-ai/pull/3358
* Allow configuring EMR cluster spark properties by wangxiaoyou1993 in https://github.com/mage-ai/mage-ai/pull/3592
* Support `TIMESTAMP` in redshift convert by RobinFrcd https://github.com/mage-ai/mage-ai/pull/3567

New Contributors

* luizarvo made their first contribution in https://github.com/mage-ai/mage-ai/pull/3597
* RobinFrcd made their first contribution in https://github.com/mage-ai/mage-ai/pull/3567

**Full Changelog**: https://github.com/mage-ai/mage-ai/compare/0.9.26...0.9.28

Page 4 of 10

ยฉ 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.