okta / okta-sdk-python

Apache License 2.0
229 stars 143 forks source link

💡 ℹ️ Update on the Python SDK Refresh ℹ️ 💡 #375

Open bretterer opened 9 months ago

bretterer commented 9 months ago

Over the past year, Okta has been committed to enhancing our OpenAPI Spec to align with the latest version. This initiative has predominantly concentrated on our most widely-used libraries such as .NET, Java, and Golang. However, we recognize that this focus has led to questions and concerns about the status of our Python SDK.

In response to your feedback, we have taken proactive steps to address the future of the Python SDK. Over the past few months, our Product Management and Engineering teams, have formulated a comprehensive plan to propel our Python SDK forward. In the coming month, we will be dedicated to the internal planning and migration process to transition from the current state of Python to the refreshed OASv3 version. Our objective is to deliver a fully functional v3 version of Python in the upcoming year.

It's crucial to acknowledge that migrating from OASv2 to OASv3 entails a complete overhaul of our existing Python library. This transition will essentially be akin to introducing a brand-new SDK. While we understand that this may present some challenges for you and your developers, but we firmly believe it's a necessary step to provide you with the most robust and efficient Python SDK possible.

Now, let's talk about how you, our Python SDK community members, play a pivotal role in this journey. We're introducing an innovative concept within Okta's open-source framework for this library. While we will officially support this Python SDK as part of our open-source offerings, we're placing significant emphasis on the active involvement of our Python SDK community. While we will continue to oversee PRs and security fixes, we anticipate that new features and capabilities specific to the Python SDK, beyond our standard API updates, will come from you, our Python SDK experts.

We encourage you to keep a close eye on this repository and associated issues for ongoing updates. Your feedback is invaluable to us, and we eagerly await your insights and suggestions regarding the future of our Python SDK.

Thank you for being an integral part of the Okta Python SDK community. Together, we're shaping a brighter future for our Python SDK.

gabrielsroka commented 9 months ago

@bretterer , thanks for the post and the update. it was brought to my attention by an Okta customer.

i've been working with the Python SDK since v1 came out (posting examples on the readme https://github.com/okta/okta-sdk-python/issues/123, writing scripts, etc) and even the beta version.

i've written a lot of code using it and also requests, aiohttp, and even urllib.request and shared it with customers via GH https://github.com/gabrielsroka/okta_api, Slack, etc.

the challenge i see is most customers that i work with are admins, not professional developers. they write 50-line scripts, not production quality large programs. and asking them to learn async is a lot (it took me a long time to get it). so, most of them use requests, and most of them reinvent the wheel -- over and over again, eg on pagination, on (not) using Session() (which, in fairness, the 1.0 SDK also didn't use until i suggested it https://github.com/okta/okta-sdk-python/issues/267). letting them know there's an SDK they can use and be productive right away might propel Python to be a "more widely-used library" -- ie, maybe it's a chicken and egg situation.

is the sdk for admins, too? or only professional developers?

You wrote that you've:

concentrated on our most widely-used libraries such as .NET, Java, and Golang

i think Python is in a different league than those languages. i (personally) would never script in any of those 3, but Python (or maybe JavaScript or PowerShell https://github.com/gabrielsroka/OktaAPI.psm1), sure.

when SDK v1 came out, @joelfranusic-okta (aka @jpf) and I wrote a doc (on Okta's internal wiki called "Review of the Okta Python SDK") with some thoughts (eg, on how to make it more Pythonic, comparing it to other vendors' SDKs, sync vs async, returning tuples, using exceptions, etc). i hope those will be revisited now.

i'm sure i'll have more thoughts/notes in the coming days on this.

EDIT: i should add, i'd be happy to help test/document/collaborate on the new version.

see also https://github.com/okta/okta-sdk-python/pull/328 and https://github.com/okta/okta-sdk-python/issues/353#issuecomment-1470858195

crosso-au commented 9 months ago

Thanks @bretterer !

mdrdannyr commented 3 months ago

Hi @bretterer,

Hope you're doing well.

Is there any update on status of the new SDK?

Would be great if there was even a rough timeline so we can understand what our next steps should be.

bryanapellanes-okta commented 1 month ago

Thank you for your patience while we build the next version of the Python Sdk. While we can't make any concrete commitments about dates when work and tasks will be complete, I intend to open issues here as work ramps up and decisions need to be made. I look forward to engaging all who are interested in helping ensure the next version of the Python Sdk meets the needs of the community. cc @mdrdannyr @crosso-au @gabrielsroka