gabrielsroka/gabrielsroka.github.io

"Export Group Rules" does not show exclusions

Closed this issue · 4 comments

Hello, and thank you for the wonderful extension!

I attempted to dump all the rules from my Okta service, and I got a CSV file with these columns:

  • id
  • name
  • status
  • if
  • assignToGroupIds
  • countOfExcludedUsers

But if I use the API explorer (to /api/v1/groups/rules), I get these columns instead:

  • type -- unnecessary (?), seems to always be group_rule
  • id -- matches
  • status -- matches
  • name -- matches
  • created
  • lastUpdated
  • conditions.expression.value -- matches if column
  • conditions.expression.type -- seems to always be urn:okta:expression:1.0
  • actions.assignUserToGroups.groupIds -- matches assignToGroupIds column
  • allGroupsValid
  • conditions.people.users.exclude
  • conditions.people.groups.exclude

I've added the CSV column name for API Explorer results that are present; would it be possible to get the remaining values added to the "Export Group Rules" CSV output? (Or is there an option to configure that, which I'm not seeing?)

I'm most interested in the conditions.people.users.exclude and conditions.people.groups.exclude values, but if it's easier to just dump everything, then I'm happy with that, too.

(And I can obviously just use the API explorer and dump the table / JSON, so I'm not at all stuck -- but being able to get those values in the raw CSV would be lovely.)

Thanks again!

It's certainly possible, but I'm not going to make the change.

Note that the users.exclude list can be up to 100 users long.

By the way, the groups.exclude is currently unused, it's there for future enhancement.

Thank you for the quick response!

It's certainly possible, but I'm not going to make the change.

Would you accept a PR, or does the possible / max size of the exclude lists make it infeasible (or, at least, unwise)?

Either way, I do have a workaround, so it's certainly not a necessary feature. :-)

Thanks!

Probably not, for the reasons you and I stated above.

createDiv("Export Group Rules", mainPopup, function () {
startExport("Group Rules", "/api/v1/groups/rules", "id,name,status,if,assignToGroupIds,countOfExcludedUsers",
rule => toCSV(rule.id, rule.name, rule.status, rule.conditions.expression.value, rule.actions.assignUserToGroups.groupIds.join(";"), rule.conditions.people ? rule.conditions.people.users.exclude.length : 0));
});