Git Product home page Git Product logo

princenyeche / bop Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 2.0 3.32 MB

Bulk operations app for Jira is a cloud based add-on, which helps in performing bulk operational features not available on Jira cloud.

Home Page: https://elfapp.website/bulkops

License: MIT License

Python 37.86% CSS 0.07% JavaScript 0.01% HTML 60.44% Shell 1.47% Mako 0.10% Dockerfile 0.04% Procfile 0.03%
bulk-add-customers bulk-add-users bulk-create-organization bulk-create-users bulk-delete-jira-users bulk-deletion heroku jira jira-cloud python3

bop's Introduction

Hi there ๐Ÿ‘‹

  • ๐Ÿ”ญ I'm working on some opensource projects, written mostly in Python.
  • ๐ŸŒฑ Using Javascript to build fast web apps (Node.js and react).
  • ๐Ÿ’ฌ Ask me about integrating apps or building custom APIs
  • ๐Ÿ“ซ How to reach me: support[at]elfapp.website for consulting purposes or reporting a security issue. Any questions should be posted on the respective repo issue.
  • โšก Fun fact: I love programming in Python and I create scripts often that helps automate other stuff.

Prince's GitHub stats

Tools that I've made

jiraone is REST API implementation of Jira API for creating reports and performing other API related task.
BOP is Jira cloud addon for user and group management.
mistyfy A package that helps encrypts strings and returns an encrypted version of it. Customize your own cipher and encode your data the way you like it.

Top Langs

Visitors

bop's People

Contributors

dependabot[bot] avatar princenyeche avatar snyk-bot avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

dmachine44

bop's Issues

Better statistics with graphs

Is your feature request related to a problem?
It would be nice to have stats of what we use on the app, shown on a graph within the app page.

Describe the solution you'd like
The feature can be under the audit log and show stats such as

  • total number of bulk features used and their frequency.
  • How many rows of records have been processed by a user?
  • Most frequently used features by users should be displayed on a timeline.

Describe alternatives you've considered
None at the moment.

400 error on bulk delete users

There's an issue when it comes to bulk delete user. In some instances, the bulk delete shows a 400 error when deleting some users. This isn't consistent and probably happens in 2 out of 10 users (probability) going through the bulk delete. In most instance, the error of 400 doesn't occur at all. So this issue happens to some users of the app on their own instance.

This issue is created to keep track of this problem raised from Atlassian community question.

Export feature of the audit log

As a user, it would be beneficial if the audit log can be exported into a CSV file. For example, using the bulk delete feature I can know and trace the users who were not removed in our instance.

Change email templating from plain text to proper HTML

The current email template used on the app is only a plain text version. It would be better if there's a proper HTML version of the email template is added. That way, emails sent out to the users are received in a rich format.

Send current row information to in-app message

Currently, when the timeout state is reached, a user might not know which row was last executed. It would be good if this information was sent as a message in the in-app message that comes when a failure occurs. This way a user can know which rows within the CSV file are problematic.

Correct error handling on screen

This line of code doesn't strip the right side of the special character to the error message on screen. It should be corrected with
Example code

# previous state
if mistake.get('validate') is not None:
    flash(f"Your URL \"{y}\" is not the expected value. Do you mean {y.strip(string.punctuation)} instead?")

Abililty to disbale/bulk disable user accounts

Hi Team,

Is your feature request related to a problem? Please describe.
Currently within our instance we have multiple duplicated user accounts left over from issues with our migration. Some of them are taking up licenses, some of them are just active. This is causing confusion with logins as well as when trying to work collaboratively by '@' mentioning etc. as multiple entries of the same person exist. While we can manually go through and disable the additional accounts, we would like the ability to go through and actually deactivate and duplicated accounts fully. Then in line with internal policies we can bulk delete a year from now.

Describe the solution you'd like
As a user, I want the ability to disable and bulk disable users through the bulk ops app so that I can save time on a huge manual process. Under the user tab on the app, alongside the creation and deletion of users I would like the ability to disable Atlassian user accounts.

Describe alternatives you've considered
While removing from a group to remove access does cover some of the effort. disabling duplicated user accounts with handle both the confusion aspect as well as licensing in one. The only other alternatives considered are manually (not an option with 1000s of accounts) or to create our own script to do this.

Additional context
Looking at the bulk ops app I see that we can create and delete users. However, what about disabling. I feel that this is a huge missing part of the user lifecycle as you would usually disable before deleting.

Kind Regards,
Dan Tombs

https://developer.atlassian.com/cloud/admin/user-management/rest/api-group-users/#api-users-account-id-manage-lifecycle-disable-post

Add a response error to CSRF

The forms of the BulkOps app for Jira include a csrf token on every form. However, it would be good to handle any error that occurs as a result of a wrong csrf detected. An example to implement this directly to the error handler of the flask is shown in the flask_wtf documentation.

Example code

from flask_wtf.csrf import CSRFError

@app.errorhandler(CSRFError)
def handle_csrf_error(e):
    return render_template('csrf_error.html', reason=e.description), 400

JSM bulk operation features

In providing a better migration capabilities to those users moving to cloud, JSM features for provisioning of customers into their respective projects is needed for smooth transitioning.

These are the features which needs to be provided.

  • Bulk creation of JSM organizations.
  • Bulk deletion of JSM organizations.
  • Bulk add a JSM organizations to a service desk.
  • Bulk remove a JSM organizations from a service desk.
  • Bulk addition of customers into JSM organization.
  • Bulk removal of customers from JSM organization.
  • Bulk addition of customers to specific JSM projects e.g. ITSM or SD
  • Bulk removal of customers from specific JSM projects e.g. ITSM or SD

Provide sortable tables for audit log

The audit log shows a history of the changes within the app. It would be beneficial if the tables can be done below

  • Provide a means to sort by ascending or descending order.
  • Make a search available to filter by error or to search by text
  • Searching should be dynamic. Type search should show results immediately.
  • Pagination should show the trail of numbers and should be clickable.

Create the Backup Module

Create a backup module that will be able to trigger Confluence or Jira Cloud Backup by setting a few configuration settings.

Progress Bar only works on Desktop version of Chrome.

Describe the bug
The Progress bar seems to only work on Google Chrome and not on other Browsers such as Safari or Firefox.

To Reproduce
Steps to reproduce the behavior:

  1. Go to any feature on bulkops App e.g. create group
  2. Type a list of groups to create
  3. notice that the progress doesn't change
  4. If you look in the console log, you will see that there's no http 200 on the /progress endpoint

Expected behavior
The Progress should just work, just as how it works on Chrome

Desktop :

  • macOS
  • Browser e.g. Safari, Firefox, others
  • Version e.g. latest

Smartphone:

  • iOS
  • Browser [e.g. Chrome, safari]
  • Version [e.g. latest]

Additional context
The below stacktrace is shown and also if you resend the request it then works. which is an unacceptable experience.

	loadProgress
http://127.0.0.1:5000/create_groups:430:14
<anonymous>
http://127.0.0.1:5000/create_groups:425:15
dispatch
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:41772
add/y.handle
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:39791
(Async: EventListener.handleEvent) add
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:40258
De/<
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:39444
each
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:2573
each
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:1240
De
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:39420
on
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:45273
<anonymous>
http://127.0.0.1:5000/create_groups:423:26
l
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29375
a/</c<
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29677
(Async: setTimeout handler) a/<
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29886
u
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:27457
fireWith
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:28202
fire
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:28238
u
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:27457
fireWith
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:28202
ready
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:31285
_
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:31419
(Async: EventListener.handleEvent) <anonymous>
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:31533
<anonymous>
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:220
<anonymous>
https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:225

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.