procore-oss / backstage-plugin-announcements

Announcements Plugin for Backstage
https://procore-oss.github.io/backstage-plugin-announcements/
MIT License
27 stars 21 forks source link

๐Ÿš€ Feature: Support announcements creation targeting only to specific groups of people #428

Open danigar opened 1 month ago

danigar commented 1 month ago

๐Ÿ”– Feature description

It would be great if the announcements creation could target only specific groups of people inside backstage. Another cool feature could be mentioning groups and people in the description using @.

๐ŸŽค Context

I want to create announcements that notify to only some groups of users, because some announcements are specific to some squads or teams and are not company-wide. I think this could be achieved now somehow using categories, but a more specific group-approach could be a nice to have.

โœŒ๏ธ Possible Implementation

One idea could be:

๐Ÿ‘€ Have you spent some time to check if this feature request has been raised before?

Are you willing to submit PR?

Yes I am willing to submit a PR!

kurtaking commented 1 month ago

Hey @danigar, thanks for opening this. I like your possible implementation, and think there is definitely value in this. I see you are willing to submit a PR. How do you see us breaking this work down?

danigar commented 1 month ago

Hi @kurtaking. Sure, do you have any idea how to approach this from the beginning?

kurtaking commented 1 month ago

It would be great if the announcements creation could target only specific groups of people inside backstage. Another cool feature could be mentioning groups and people in the description using @.

Mention groups and people in the description form.

I'd probably keep these separate for now. Focus on the first, and make @ing groups and mentioning in description follow up feature enhancements.

In the announcements page you will have a filter to see only the announcements that affect the groups you belong to. But you could remove this filter and see all the announcements.

Maybe I could work on the filtering aspect because we need that for a few other feature requests. So that once you add functionality to target, filtering would be in place.

In the home page you will be able to add a groups filter to the component, to see only the announcements that affects you. Similar to what categories input offers, but specific to groups.

This is a follow up to filtering so I could probably take this as well.


TL;DR - I am down to help with some of this. We need to figure out how to handle storing this information in the database. Do we need a new lookup table? Do you have any ideas there? Once we figure out some of those concrete details, we can split up the work like I mentioned above.

danigar commented 1 month ago

Everything sounds great. I don't have all the implementation details so I could be missing something important here, but I think we could use the catalog api to look for backstage groups when referencing them inside an announcement. Probably with the group name info is enough for us..so we just need to store the group name in the annoucements table (in a new optional groups field?). wdyt @kurtaking?