RStudio Connect API report who can view the app

I have been looking over the RStudio Connect API, but i'm not seeing how to report who has access to which app (via acl)?
Did I over look anything?
I able to get who accessed the and other details.
Any suggestions besides looking in the UI?
Thanks

1 Like

Unfortunately there is not a great way to do this today. Do you mind explaining a bit more about what you're trying to accomplish? Where in particular do you feel like the access reporting in Connect falls short? Are you wanting to build your own report on access, or trying to integrate into some other system? Is this to simplify your administration of the server? To meet other objectives?

While we would love for the public Connect API to have this functionality, and there may be some possible workarounds today, these types of details can help us understand what you're shooting for and either (a) recommend a better workaround in the short term, or (b) build a better product in the long term.

1 Like

Hi Cole,
we are trying to do usage/access tracking....to show who is and isn't using the app....if user are not using app....we want developers to decide if they still need access....also allows us to report permissions without open each app to do monthly/quarterly of access checks.
If there is another way to get a list of acl for each app without looking at each app, that would be great....I wasn't able to find it...but I'm sure I didn't look everywhere.

2 Likes

Hi @cole,

I'd like to second @shannon.lewis request. It is a big improvement in terms of user management and access tracking. It would be nice to make it possible to grant permissions to users through the API as well .

Thanks!

I realize this is very late, but there are now some experimental functions within connectapi that you can use to read ACLs. Specifically:

library(connectapi)
client <- connect()

myapp <- content_item(client, "my-guid")
get_acl_user(myapp)
get_acl_group(myapp)

Please give that a try and let us know if you have any feedback! We have some experimental ways to "add" / change ACLs to applications in the works as well. All of this is using private Connect functionality and should definitely be considered experimental, with the hopes of getting feedback around whether this meets your needs. Hope it helps!

1 Like

Hi @cole,

It works really well the get_s , thanks for pointing this out! Could you point out how to change the ACLs using the package? I can't find functions for it in master...

Overall I've tested many of the functionalities in connectapi and I could not be more satisfied with what is offered there. It is already allowing our publishers to be much more independent and the admins to have a better overview and control over content. Keep doing the excellent work and I am looking forward to see the package mature and get better! Thanks a lot!

1 Like

Very glad to hear! :smile: We are definitely shooting to mature the Connect API itself and publicly document it, along with stabilizing the package a bit too :slight_smile: Great to hear that it is helpful though!

The ACL modifying functions are still unexported because they are pretty new (and have potentially problematic downsides if used improperly, so it'd be great to do a bit more hardening before they are publicly visible :see_no_evil:). In any case, you can find them with the connectapi:::acl_ prefix (for now), and see a bit more discussion here https://github.com/rstudio/connectapi/issues/56

As always, feedback is welcome! :smiley:

1 Like

This works very well...and really like the process of being able to provision users to acls very nice!!!
Thank you so much!!
Shannon

1 Like

Hey Cole,
is there are a way to see which Tags are attached to the content?

Not cole, but you can do:

mycontent <- content_item(client, guid)
mycontent$tags()
1 Like

That's a great question! @joseluizferreira's solution is the best we have right now, I think! I am actually in the process of working on some better interactive tag tooling to play with :smile: So hopefully more to come there soon!

If you have feedback on what you're looking for or a proposed interface, I'd be curious to hear your thoughts on this thread! Updating tags programatically :smile:

I'm currently imagining an interface like:

tags <- get_tags(client)

set_content_tag(content, tags$Section$tag$subtag)

get_content_tags(content)
1 Like