Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature suggestions #464

Closed
jacobsen9026 opened this issue Aug 1, 2024 Discussed in #463 · 41 comments
Closed

Feature suggestions #464

jacobsen9026 opened this issue Aug 1, 2024 Discussed in #463 · 41 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request
Milestone

Comments

@jacobsen9026
Copy link
Contributor

Discussed in #463

Originally posted by barroei1981 August 1, 2024
[Error] Current User State was not provided to this directory entry ApplicationException { TargetSite: BLAZAM.Session.Interfaces.IApplicationUserState get_CurrentUser(), Message: "Current User State was not provided to this directory entry", Data: [], InnerException: null, HelpLink: null, Source: "BLAZAMActiveDirectory", HResult: -2146232832, StackTrace: " at BLAZAM.ActiveDirectory.ActiveDirectoryContext.get_CurrentUser() in D:\a\BLAZAM\BLAZAM\BLAZAMActiveDirectory\ActiveDirectoryContext.cs:line 32
at BLAZAM.ActiveDirectory.Adapters.DirectoryEntryAdapter.get_CurrentUser() in D:\a\BLAZAM\BLAZAM\BLAZAMActiveDirectory\Adapters\DirectoryEntryAdapter.cs:line 101

i am logged in with the Admin user, and i cant set any additional users ince i get find anything on the AD Search

@jacobsen9026 jacobsen9026 added the bug Something isn't working label Aug 1, 2024
@jacobsen9026 jacobsen9026 self-assigned this Aug 1, 2024
@jacobsen9026 jacobsen9026 added this to the 08H1-2024 milestone Aug 1, 2024
@barroei1981
Copy link

I will try to download the source code and validate it on my Visual studio , it seems that I just don't have permissions, but I checked the User and it is able to search the AD.

So my assumption is either I have a DN misconfigured or a bug with regards to the user being user is the Admin logged in and not using the user I gave for the query on AD.

@jacobsen9026
Copy link
Contributor Author

@barroei1981 Wow, thanks for being willing to attempt some debug yourself, that's awesome.

It is not related to any connection issues with your AD. The local admin is always a super admin and exists for that very reason, when there are issues.

Each directory search result loads in the current user state, which should be the admin account here. When interacted by web users, permission checks are made to verify the requested action. The fact this error is occurring means that search results are being found, so your AD connection is working.

For some reason, either the CurrentUserStateService did not get loaded, or failed to read the authentication cookie from the browser. Or the per-web-user Active Directory connection was created too early.

Does the user button work and show the username admin?
image

If so, then the CurrentUserStateService is working as expected.

Also, was a restart of the web application performed? I can see a fringe situation where something may get hung up in that process immediately after the first launch wizard.

I was unable to reproduce the error, but I have not tried a fresh install yet.

@barroei1981
Copy link

barroei1981 commented Aug 2, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Hi @barroei1981,

Thanks for the quick responses.

I believe the issue may be triggered by line 122 in ADSearch.cs
SearchRoot ??= ActiveDirectoryContext.Instance.GetDirectoryEntry(DatabaseCache.ActiveDirectorySettings?.ApplicationBaseDN);

This pulls a statically (application wide) assigned AD connection which, now that I'm looking at it, could result in a race condition between the application's internal AD connection and the user assigned one, since both connections set this variable (oops). Using the internal connection while checking for, in this case read, permissions will throw this error. This also reveals a possible privilege bypass which is a moderate security risk with concurrent web users. Fixing this will remove that security risk and greatly improve the app.

Root cause:
image

I must be getting incredibly lucky to not have run into this, or you're incredibly unlucky, either way, it's a legitimate bug.

I will work on a hotfix for the above under v0.9.5 and should be release by Sunday. Once released, you can run the installer again to update.

I use SQL server at work for this app in production (SQLite for dev) so I have less vetting on MySQL but last I tested it was able to connect. I'll take another look. What version of MySQL are you attempting to connect to?

@jacobsen9026
Copy link
Contributor Author

Hi @barroei1981,

Thanks for the quick responses.

I believe the issue may be triggered by line 122 in ADSearch.cs SearchRoot ??= ActiveDirectoryContext.Instance.GetDirectoryEntry(DatabaseCache.ActiveDirectorySettings?.ApplicationBaseDN);

This pulls a statically (application wide) assigned AD connection which, now that I'm looking at it, could result in a race condition between the application's internal AD connection and the user assigned one, since both connections set this variable (oops). Using the internal connection while checking for, in this case read, permissions will throw this error. This also reveals a possible privilege bypass which is a moderate security risk with concurrent web users. Fixing this will remove that security risk and greatly improve the app.

Root cause: image

I must be getting incredibly lucky to not have run into this, or you're incredibly unlucky, either way, it's a legitimate bug.

I will work on a hotfix for the above under v0.9.5 and should be release by Sunday. Once released, you can run the installer again to update.

I use SQL server at work for this app in production (SQLite for dev) so I have less vetting on MySQL but last I tested it was able to connect. I'll take another look. What version of MySQL are you attempting to connect to?

Hmmm, while the previous is a bug, it doesn't explain the missing username in the user menu.... that's concerning, and likely won't fix this issue....

I'm gonna try a slight modification to the CurrentUserService and some additional logging/exception throwing to hopefully get more insight should the modifications have no effect.

@barroei1981
Copy link

barroei1981 commented Aug 3, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Thank Roei,

I found a number of issues with some newly activated features that are interfering with the first run wizard. And I have reproduced your issue, though only just 15 minutes ago, still investigating.

There is no external API built for Blazam yet. It has always been an option in the design and the foundation of API tokens and proven authentication and authorization via those tokens was created at the very beginning, existing in the code to this day.

Unfortunately as it stands Blazam is unable to integrate with any external applications/systems... it will have to be done in app.

I don't think you were asking, but to be clear, API's (99% of them) use the same authorization for all users of the external app, therefore, Jira or Twilio would have to control whether an action is allowed for a user of that external app.

A question I didn't see on the App and I had in my previous company, is the
ability to allow users to assign delegates to groups, and to ask for
ownership change those allowed me to give the users a hugebapan of control
and reduce efforts since the users managed it by themself.

  1. Self service allowing owners to manage their own groups or assign
    delegates , or non owners to ask to be added , or be assigned as delegates.

I'm sorry I got a little lost in reading this, by allowing users to assign delegates to groups, are you saying, to provide permission to a Blazam non-superadmin user to be able to assign delegation of a group to another non-admin Blazam user? If a group is provided permission to manage the other group, and also can manage the group provided permission, anyone in that first group can add or remove users as desired, can even remove themselves. But I'm not sure that's what you are describing.

Regarding group owners, I'm assuming you mean the Manager attribute for groups in Active Directory? I can already imagine the code needed to let that automatically allow certain permissions. They would still need to be defined as a "Delegate" in Blazam either directly or by a containing group, to allow them to log in.

Asking for permission to change is a little less clear in my head how best to accomplish. An all or nothing approach seems the cleanest for both developing and end user experience, but maybe people would want yet another fine grained per-OU/AccessLevel setting to play with...

  1. An API managed solution for self service to our users either through
    Jira approved flow to be added to groups managed by IT or in some cases
    through Twilio for cases like unlock users and password reset.
  1. Provision new user to trigger a template assignment to groups by user
    type.

If an API existed, the above would be easily implemented.

Obviously I'm going to focus on the original issue, and then towards a stable 1.0 release. API work would have to wait until after. Just to be completely transparent about what your expectations should be.

@barroei1981
Copy link

barroei1981 commented Aug 3, 2024 via email

@jacobsen9026
Copy link
Contributor Author

jacobsen9026 commented Aug 3, 2024

I believe I have identified the root cause of your original issue. I missed a dependency in the installer and instructions. Apparently all the machines I test with IIS all already had this dependency installed, possibly by an older .NET installer.

WebSockets must be installed on the IIS host for many core components of the app to work.... I'm fairly confident you will find this to be missing. If not, do let me know....

  1. In the Server Manager, go to the Add Role and Features wizard and select Server Roles.
  2. In the Roles pane, under Web Server > Application Development, select WebSocket Protocol.

I will have to update the installer to check for this, and update my manual installation instructions.

Regarding you workflow...

In my previous company what we did is :

  1. IT Create Group
  2. IT set group ownership by the main user of that need.
  3. That user was then able to manage it solely.

Blazam is designed entirely around that concept, here's an exaple...

  1. IT creates "Delegate" in Blazam Permissions pointing to "group owner"
  2. IT creates "Access Level" in Blazam Permissions to allow whatever you consider an "owner" should be able to do (assign/unassign members, rename, move, or delete)
  3. IT assigns said "Access Level" to said "Delegate" in the Permission mappings in Blazam. (I suppose this is where it deviates slightly in that you can not target a specific group, unless that group is the only one in that OU)
  4. User can manage groups under assigned OU in Permission mapping.

Another flow was that is IT didn't have an Owner at first Phase than

  1. User could ask to change ownership to him , IT would be notified and
    swap
  2. User to user change ownership - in case of user leaving or swapping role.

I don't see a way to do this with Blazam's current design. As disclaimed above, you can not target permissions to a specific group only OU's.... It could be possible if I extend permission application down to each object (which honestly may be very easy to achieve with minimal code change), or as I mentioned in a previous post, Blazam could utilize the Manager attribute of the group and allow for permissions by setting that in Active Directory (safer from bugs, but more code)

I will see how best to try and satisfy your use case.

@barroei1981
Copy link

barroei1981 commented Aug 3, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Hi Chris, short update, post installing the Websocket feature everything started to work, but now that i see that the view is on OU level i understand that i need the permissions on the Tree to Allow me to manage access permissions on the Acrual Security Group. since we manage under 1 OU all Security Groups that are focused under specific domain and i need the granularity of security group permissions to be on the level of the Group and not on the level of the OU. unless i am missing something. Regards, Roei

Hello Roei,
Without being able to assign permissions to specific groups in Blazam, then you are correct, if all groups are under the 1 OU, it won't be able to currently satisfy your needs.

Please note the disclaimer at docs.blazam.org which applies to groups as much as users....
image

However, I plan to attempt to implement per-AD-entry permission application, which in theory would satisfy your needs. Albeit, extremely granular.

I would expect to be able to have that included by mid to late August. (I try to do a 1-2 week feature testing in my environments before releasing officially)

I apologize if this disappoints or in any way affects your satisfaction with Blazam. Every attempt will be made to provide you with the confidence that Blazam can satisfy your requirements. I appreciate the motivation to work at it.

@barroei1981
Copy link

barroei1981 commented Aug 3, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Hi Roei @barroei1981,

I wanted to let you know that with only minor modifications to the GUI, and practically no backend code changes, I was able to achieve permissions applied to a single group within Blazam. Completely fulfilling one of your use cases. Nice to see the foundational code can be so flexible.

Because the code changes are so minimal, I will include it in the v1.0 release. ETA 10 or so days.

Note: v1.0 will require .NET 8

@barroei1981
Copy link

barroei1981 commented Aug 7, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Good day Roei,

If you have it on client side only, is it possible to add the delegate
option as another icon on the top of the group view.

Yes, I can see a use for this. On more than just groups, all types could benefit from this. It would only be able to allow super-admins to use it, but that lines up with what you're asking.

The reasoning I ask is I found it fairly easy to search and than click on
it , while process in Blazem right now is more connected to the permission
flow, but functionality wise once you built an ACL you don't really need to
go through this flow any more.

I plan to add a way to show all users in each Blazam "Delegate" group so you can better understand who is getting permissions. But you are correct that including the previous suggestion, this would be less important.

And once that is done, the next feature request would be , for non admin :
Add a delegate button that will send a notification ( I saw it on the main
Manu near the name icon) and than on admin side add on permissions screen
a pending requests view to allow / decline those.

I will be honest, this is a very specific use case request. I will have to think about how best implement this feature. The community is small enough right now to accommodate specific use cases like this, but I hope you can imagine 100's of theses over the years would cause a ton of lightly used features that require maintenance as the app is developed and updated. I am currently the only developer (lost one helper), so I have to bite off only what I can chew.

Having said that, I'm leaning towards including this request.

And one last thing , as a thought to have some view showing ACL'S Per user
of per all groups / OU . Since today as Admin you must login to the ACL
mapping and you don't have a clear view of who has what permissions.
I could also thing of adding this type of info on the user and group level
where on group you will see who has permissions to the group and what
delegation rights.

Plans are to include an effective permission tool, to quickly show admins what permissions are applied to each OU/AD Object without having to impersonate. Ideally this would be placed in multiple places including each search result page to show who can do what to that result.

@jacobsen9026
Copy link
Contributor Author

Hi Roei @barroei1981,

I wanted to let you know that with only minor modifications to the GUI, and practically no backend code changes, I was able to achieve permissions applied to a single group within Blazam. Completely fulfilling one of your use cases. Nice to see the foundational code can be so flexible.

Because the code changes are so minimal, I will include it in the v1.0 release. ETA 10 or so days.

Note: v1.0 will require .NET 8

And here's a sneak peek at mapping directly to groups...
image

@barroei1981
Copy link

barroei1981 commented Aug 9, 2024 via email

@jacobsen9026
Copy link
Contributor Author

jacobsen9026 commented Aug 14, 2024

I appreciate everything you provide Roei,

I think we can slow the pace of features for now, but yes I would love more suggestions and would be completely humbled by a code contribution.

I do enjoy your ideas, I just need to keep things general enough for widespread usage. Some ideas may be rejected, and left up to the IT admin to code on their end.

Anyway, version 1.0 has dropped with the ability to assign to specific groups/users/computers along with OU's.

Thank you,
Chris

@jacobsen9026
Copy link
Contributor Author

Small update:

There will be a few stabilization/bugfix updates for v1.0 before work on your feature suggestions begins.

I'm going to place this in the mid-September milestone.

@jacobsen9026 jacobsen9026 modified the milestones: 08H1-2024, 09H02-2024 Aug 22, 2024
@barroei1981
Copy link

barroei1981 commented Aug 23, 2024 via email

@jacobsen9026 jacobsen9026 added enhancement New feature or request and removed bug Something isn't working labels Aug 29, 2024
@jacobsen9026 jacobsen9026 changed the title Error post install trying to get directory information Feature suggestions Aug 29, 2024
@barroei1981
Copy link

barroei1981 commented Sep 12, 2024 via email

Copy link

This issue is stale because it has been open for 14 days with no activity.

@github-actions github-actions bot added the stale This item has not had recent activity label Sep 27, 2024
@jacobsen9026
Copy link
Contributor Author

Hi Roei,

Opening a new issue for separate problems is advised, to bring my attention to the situation. Having said that, I apologize for missing your updated issues.

FYI, the comment...

I would also check the wwwroot directory and open the js subdirectory and
ensure blazam.js is matches
https://github.com/Blazam-App/BLAZAM/blob/Release-v1.0.1.2024.08.23.2247/BLAZAM/wwwroot/js/blazam.js
which I fully expect it will.

If a bug does exist (bad DN tests have been stable on my end) I would add
some breakpoints in the authentication functions within
https://github.com/Blazam-App/BLAZAM/blob/Release-v1.0.1.2024.08.23.2247/BLAZAMServices/AppAuthenticationStateProvider.cs

Debugging on your end would be greatly appreciated. My investigation has
led me to believe the error is confined to JS but its possible the C# base
code is to blame.

Was intended for another user's issue.

I also checked again the use of MySQL – few issues – although I said to use 1 user, on install it always tried to use blazam user which didn’t exist, and it didn’t work until I actually had to create it.

This makes a lot of sense as to a possible issue, I always use blazam as my MySQL user, could explain how I missed a bug. Will investigate...

Another weird issue, a feature on the app allowing you to add Branding Icon… it allows upload of the icon but always shows the BS icon, and never replace it.

This is a feature that has not been tested in a while. For traffic reduction purposes, the icon is cached by Blazam for a minute or so, but it's possible a reboot is currently required for it to update. Will also investigate... (and I got a laugh out of your use of BS icon, in English speaking countries BS stands for a male cattle's droppings, which I'm sure you didn't mean and were referring to BZ, Blazam, still funny)

I don’t know whats going on, after 30 min of leaving it, it started to work….

Thank you, I had a feeling there was some post-install hang on account of my logging server receiving almost a GB per hour of errors after every fresh install. Having the user-end experience reported is incredibly helpful. I now know where to begin looking for causes.

September was always predicted to be a difficult time to work on Blazam for myself. This has led to a slump in feature work, I've been focusing on quality and bug improvements for the previous month.

Of course your errors and poor experiences will be addressed first, as always, no point in adding more features with their own bugs while old ones still exist.

October should bring a 25%-50% increase in available time to devote to testing and implementing these suggested features.

@jacobsen9026 jacobsen9026 added the bug Something isn't working label Oct 2, 2024
@github-actions github-actions bot removed the stale This item has not had recent activity label Oct 2, 2024
@jacobsen9026
Copy link
Contributor Author

I also checked again the use of MySQL – few issues – although I said to use 1 user, on install it always tried to use blazam user which didn’t exist, and it didn’t work until I actually had to create it.

This makes a lot of sense as to a possible issue, I always use blazam as my MySQL user, could explain how I missed a bug. Will investigate...

You are correct, the setup contained the following line...

connectionString = InsertValue(connectionString, InstallationConfiguraion.DatabaseType==DBType.MySQL?"User": "User Id", Database);

Which would insert the database name as the username, when it should have been...

connectionString = InsertValue(connectionString, InstallationConfiguraion.DatabaseType==DBType.MySQL?"User": "User Id", Username);

This will be included in the next setup update. The web installer will have to be redownloaded, as it does not self-update, or even check for updates.

@jacobsen9026
Copy link
Contributor Author

Another weird issue, a feature on the app allowing you to add Branding Icon… it allows upload of the icon but always shows the BS icon, and never replace it.

After testing, the feature is functional albeit with one caveat, and one poor UX implementation.

The caveat is that the icon is delivered in a way that the icon is cached by client browsers. Blazam currently tells browsers to cache the icon for 24 hours, so a change may take up to 24 hrs to show for all users.

The poor UX (user experience) implementation is that the setting page where the icon is set also uses the cached version, meaning changes are not shown immediately, and leads to the impression that the default logo was uploaded.

A disclaimer will be added warning about the caching situation.

The settings page will be modified to show the image currently in the database instead of the cached method.

image

@jacobsen9026
Copy link
Contributor Author

I also checked again the use of MySQL – few issues – although I said to use 1 user, on install it always tried to use blazam user which didn’t exist, and it didn’t work until I actually had to create it.

This makes a lot of sense as to a possible issue, I always use blazam as my MySQL user, could explain how I missed a bug. Will investigate...

You are correct, the setup contained the following line...

connectionString = InsertValue(connectionString, InstallationConfiguraion.DatabaseType==DBType.MySQL?"User": "User Id", Database);

Which would insert the database name as the username, when it should have been...

connectionString = InsertValue(connectionString, InstallationConfiguraion.DatabaseType==DBType.MySQL?"User": "User Id", Username);

This will be included in the next setup update. The web installer will have to be redownloaded, as it does not self-update, or even check for updates.

Fixed setup v1.4 has been released and addresses this issue

@jacobsen9026
Copy link
Contributor Author

Another weird issue, a feature on the app allowing you to add Branding Icon… it allows upload of the icon but always shows the BS icon, and never replace it.

After testing, the feature is functional albeit with one caveat, and one poor UX implementation.

The caveat is that the icon is delivered in a way that the icon is cached by client browsers. Blazam currently tells browsers to cache the icon for 24 hours, so a change may take up to 24 hrs to show for all users.

The poor UX (user experience) implementation is that the setting page where the icon is set also uses the cached version, meaning changes are not shown immediately, and leads to the impression that the default logo was uploaded.

A disclaimer will be added warning about the caching situation.

The settings page will be modified to show the image currently in the database instead of the cached method.

image

Improved icon upload experience dropped in 1.0.4 update to Blazam last night.

@jacobsen9026 jacobsen9026 modified the milestones: 09H02-2024, v1.1 Oct 12, 2024
@jacobsen9026
Copy link
Contributor Author

Work has begun on a display of effective permissions of other users. Once this is complete work will shift to access requests. I'm still not sold on exactly how to implement this. For example a request to assign/unassign could easily evolve into a desire to request for edit, or other actions. Flexibility requires complex code and we want to get this correct on the first attempt. Streamlining this into the existing notification system presents its own challenges as well.

@jacobsen9026
Copy link
Contributor Author

Effective permissions simulators are completed. The cleanest display is to only show a single user's access, as showing all access for all groups would be hard to understand and interpret. In the future I hope to add per field read and edit access to be shown, but for now it's just a simple can read (any field), can edit (any field).

Example permissions for a regular user against a group
image

Next task is to work on an actionable notification upgrade, currently notifications are only just that, notifiers. Changing this to an actionable response by another user is not a trivial task and may take some time to get to the desired user experience. But it can be done. Thorough planning will have to be done to ensure it is flexible enough for future additions.

@jacobsen9026
Copy link
Contributor Author

Hi Roei,

I'm wondering what your opinion is, the simplest way to do this is to allow all users to request assign/unassign access to all groups they can read but can't already assign/unassign. They would need to already have read access. Is this acceptable for your use case?

Thanks.

@barroei1981
Copy link

barroei1981 commented Oct 28, 2024 via email

@jacobsen9026
Copy link
Contributor Author

By the way I think I found a bug on your Upgrade process, it seems to fail again and again, and the only way I was able to install it is by offline installer and only once I stopped the IIS.

First, there was missing information in the documentation regarding update permissions until a couple weeks ago. In addition to write permissions to the installation directory, the account used to update must also have permissions to manage IIS sites (or services for service installations). If you're using the Blazam AD credentials for updates, and that AD user is a domain admin, they should already have permission to manage IIS, only explicit folder permissions are required.

If the first point does not apply to your situation, if you can, please copy the contents of lastUpdateAttempt.txt in the Update folder of the installation directory. Remove any passwords and usernames prior to pasting publicly to this thread. That will let me know how and why the update is failing to apply. If you can identify the failure yourself, you can paste only the relevant logging.

Lastly, I am a few days away from having working group management access requests. Many changes were done to the notification system to make this possible and is flexible enough for future additions to notification functionality.

Thank you for making Blazam awesome!

@barroei1981
Copy link

barroei1981 commented Nov 6, 2024 via email

jacobsen9026 added a commit that referenced this issue Nov 7, 2024
@jacobsen9026
Copy link
Contributor Author

but per what I see in the logs it is using the Directory connection username and not mine

I see the issue and will have it fixed for the next update. It is indeed only using the AD credentials.

@jacobsen9026
Copy link
Contributor Author

Update

Everything but email notifications of a request is completed.

Workflow screenshots

User

Non-admin view showing request button
image

Request Dialog
image

Admin

Admin Request Notification
image

Approval dialog
image

Behavior

Upon approval, a delegate and access level will be created if needed, and the direct mapping to the requested object is assigned.

@barroei1981
Copy link

barroei1981 commented Nov 10, 2024 via email

@barroei1981
Copy link

barroei1981 commented Nov 10, 2024 via email

@jacobsen9026
Copy link
Contributor Author

Webhooks and an API are planned (probably next features to be added). I won't stop you because I'd love the help, but getting just template user creation via API should be easier than webhooks.

I'm gonna spend some more time (2-3 days) testing and fixing little UI issues before releasing this version (v1.1).

If the template API turns out as easy as I suspect, I may be able to include it in that release.

@jacobsen9026
Copy link
Contributor Author

You're original feature request is being pushed through nightly testing right now. A preview will soon be available at https://blazam.org/demo

Once testing is completed it will drop as v1.1.0 for public usage.

This thread is too long and I want to abandon it.

For API feature tracking on your side, please continue that discusion in the existing webhooks request which I have modified to include API #585

@jacobsen9026
Copy link
Contributor Author

There are some issues with self update that have popped up on my main test installation. I am unable to reproduce the problem with other test installs, or fresh installs, so the thinking is it's just an issue with that specific test server/installation. But I wanted you to be aware and report any issues if you use self update after applying this next update.

Email notification of requests is untested, but should function and is built just like the other notification types.

Version 1.1.0 will drop within the next couple hours.

I will therefore close this issue as completed. However, improvements to the visual presentation (tooltips, informational messages, etc...) of the access request feature will continue regardless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
No open projects
Archived in project
Development

No branches or pull requests

2 participants