Closed afranzi closed 1 year ago
@afranzi this is an intentional design decision -- the tools are meant to be standalone, mini programs, essentially. Our target audience for this library aren't developers, but ThoughtSpot admins / consumers of the data itself. Many design decisions have been made with this kept in mind. I've considered adding ADRs to this repository to help communicate some of those decisions.
I'm curious again, what you're hoping to achieve? 😄 I'd like to help, but want to guide you appropriately for the situation.
We are automatizing the user & group provisioning since some of our teams have some kind of dynamic
nature. So we would like to remove any manual work.
What's the general process you'd envision for automating user/group provisioning?
Depending on what your process looks like, you might be better off interacting directly with the ThoughtSpot User/sync API itself.
We have an interface to the tools themselves. I feel this will not be simple to implement though, since the tools are meant to be interacted with on the command line. It might be better offer simulating interaction with them using subprocess and parameterizing that...
Something like this should help if you want to write code directly against the tools.
from cs_tools.const import TOOLS_DIR
from cs_tools.cli.loader import CSTool
def main():
user_mgmt = CSTools(TOOLS_DIR / "user-management")
# do stuff with the tool..
if __name__ == "__main__":
raise SystemExit(main())
This is resolved as part of V1.4.0 . Check the release notes to learn more.
First Stop
Platform Configuration
Example Command
Description
The user-management package has a
-
instead of a_
so it cannot be imported properly.Could be possible to follow PEP8 conventions on the package names?
Thank you! :)