Piral Feed Service 1.13
Tags: webdev, javascript, piral, microfrontends
Published: 2024-02-28 07:30:31

*Photo by <a href="https://unsplash.com/@cbpsc1?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Clint Patterson</a> on <a href="https://unsplash.com/photos/black-and-white-laptop-computer--jCY4oEMA3o?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>*  

The Piral Feed Service is a commercially available [micro frontend discovery service](https://dev.to/florianrappl/micro-frontend-discovery-the-driver-for-scalability-oai) with a free tier that works for many solutions such as Webpack Module Federation, single-spa, Native Federation, OpenComponents, dynamic .NET / NuGet packages, or Piral.

With the release 1.13 the Piral Feed Service adds some new powerful features that make it even more attractive for new teams - giving them some interesting capabilities such as improved support for static websites or instand notifications.

In this post we'll walk over some of the highlights of this release and how these features can impact your work.

## Module and Native Federation Enhancements

While the Piral Feed Service had support for (Webpack) Module Federation beforehand, it required the use of the dashboard plugin for Module Federation. Well, no more. Now, the Piral Feed Service is able to detect and use the uploaded micro frontend's correctly as `mf`, Module Federation.

As for Native Federation there are also a couple of enhancements under the hood. Most importantly, Native Federation just plays nicely with the rest of the functionalities, incl. feature flags, rollbacks, or configurations.

If you are interested in a more specific example [check out this repository](https://github.com/piral-samples/piral-cloud-native-federation-demo).

Overall, the view on a feed that only contains micro frontends using Native Federation could look like this:

![Example using Native Federation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pxl5gc0246mmyd00xre4.png)

As mentioned this works nicely with other features - such as all the analysis tools that come with the Piral Feed Service. One of these is the dependency graph:

![Dependencies for the Native Federation feed](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hlejlvk9qy63qy8kwwu3.png)

But the support for other technologies and micro frontend systems does not stop there. With this release there is new kind of feed (and possibility to publish micro frontends) included: NuGet.

## NuGet Feed

The NuGet feed is a special representation for .NET-based micro frontends. This [plays very well with Piral.Blazor.Server](https://github.com/smapiot/Piral.Blazor.Server) or any other .NET approach that resolves the dependencies of the micro frontends *dynamically* via the NuGet package manager.

Here is how it can look - it even plays well with *some* of the analysis.

![View on a feed with only NuGet packages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fcrf2ehtnedrs926sqof.png)

Accessing the NuGet representation of a feed uses a special link:

```
https://<feed-service-host>/api/v1/nuget/<feed-name>/index.json
```

For example:

```
https://tractor-sample.my.dev.piral.cloud/api/v1/nuget/tractor-sample/index.json
```

The response to calling this URL is not very interesting - at least for us. However, NuGet is capable of using the information for retrieval of all relevant package information.

There are a few more things in this area - the new release also supports the `X-Microfrontend-Type` header when publishing. This directly allows supporting other formats than the previously default *tgz* files. Theoretically, this header allows uploading anything as a micro frontend through one and the same endpoint. In practice we'll see what makes sense to support here.

We also have improvements on the UI for the 1.13.

## UI Enhancements

One important element for the 1.13 version was the release of the 1.0.0 of the underlying administration portal. The administration portal is both - super important and super unimportant for the Piral Feed Service.

The importance of the portal is stressed by the fact that most users will actually prefer a graphical UI over plain API calls. Nevertheless, the service is still developed API-first and everything has to be scriptable / doable via the API.

Let's have a look how the UI looks with this update.

![Some of the UI enhancements for 1.13](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cplnh5cdkfsuqw65bx0w.gif)

Almost every search element is now a backend search using a fuzzy search algorithm. This way some easy searches might take slightly longer than beforehand, but complicated searches don't require a lot of unnecessary data to bloat the frontend. All in all it feels much better.

The more complicated forms, e.g., creation of a new feed, creating an API key, or uploading a new static page is now done with a consistent step-dialog.

The audits (if activated) are now much cleaner and can be investigated with some advanced search options, incl. time-constraints.

## Notifications

Starting with 1.13 the Piral Feed Service also includes notification providers. The default notification provider is literally *none*, i.e., the previous behavior. Right now two other providers exist: One for SendGrid and one for "plain" SMTP. In any case, those two send the notification rather generically in form of an email.

In the configurator you'll now see the notifications section with all available options, as shown below.

![Configurator for 1.13](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/houn6ffm4cxdr8idj7qx.gif)

Right now notifications are only used on a couple of occasions, e.g., when an API key is about to expire. In the future there will be more notifications with some options to enable or disable them.

There are even more changes, but then again [you can just look at the CHANGELOG](https://docs.piral.cloud/general/CHANGELOG) to see for yourself.

## Conclusion

The Piral Feed Service is the most powerful micro frontend discovery service. The free community edition is great to get started. To try the service in your environment you can either go the Azure Marketplace to obtain Azure Container Registry access or contact us to start a free trial of the full service.