Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Epic] Enabling authenticated API calls from Kiota API plugins #5021

Open
6 of 7 tasks
maisarissi opened this issue Jul 24, 2024 · 5 comments
Open
6 of 7 tasks

[Epic] Enabling authenticated API calls from Kiota API plugins #5021

maisarissi opened this issue Jul 24, 2024 · 5 comments
Labels
area:authentication Focused on the extension module of the product enhancement New feature or request Epic generator Issues or improvements relater to generation capabilities. type:enhancement Enhancement request targeting an existing experience type:feature New experience request
Milestone

Comments

@maisarissi
Copy link
Contributor

maisarissi commented Jul 24, 2024

Is your feature request related to a problem? Please describe the problem.

Enabling Authenticated API calls from API Plugins

As of today, Kiota generate plugins with "Auth None" information, which is great to call APIs that doesn't require authentication. This feature aims to empower developers with the ability to generate plugins that call APIs requiring authentication.

Use Cases

  • A developer wants to create a plugin that calls an API, which requires authentication. The OpenAPI description has no auth information. They use Teams developer portal to create their auth registration. They use Kiota VS Code extension to create an API Plugins based on their OpenAPI description and to configure the authentication flow within the plugin.
  • A DevOps engineer/Admin needs to deploy a plugin that interacts with a secure API. The OpenAPI description has no auth information. They rely on Kiota CLI to generate a plugin and to provide the authentication.
  • A developer wants to create a plugin for endpoints that don't require authentication using Kiota extension.
  • A DevOps engineer/admin wants to create a plugin from the Kiota CLI for endpoints that don't require authentication.
  • A developer wants to create a plugin based an OpenAPI description with auth information. They use Kiota VS Code Extensions to create the plugin. The extension should infer the type of auth but still provide ways to configure the auth.
  • A DevOps engineer/admin creates a plugin based an OpenAPI description with auth information. They use Kiota CLI to do it. One should only be able to create a plugin if the provided auth matches the OpenAPI description

Requirements

  • Requirement 1: Kiota CLI must include a way for one to provide authentication type and reference id when generating plugins.
  • Requirement 2: Based on selected paths, ensure the authentication is supported by Copilot. So far, Copilot only accepts oauth, bearer token and apikey. Kiota should also let the user know when the API auth is not supported.
  • Requirement 3: Create a developer-friendly interface for plugin authentication configuration in Kiota Visual Studio Code Extension.
  • Requirement 4: When the selected paths (endpoints) of the API doesn't require authentication, Kiota should create plugins with "auth none".
  • Requirement 5: When the OpenAPI description has auth information, Kiota should validate whether the type of authentication in the plugin it is the same as the OpenAPI description and let the user know otherwise.

Additional context

No response

Tasks

  1. enhancement vscode-extension
  2. area:authentication enhancement generator type:enhancement
    calebkiage samwelkanda
  3. area:authentication enhancement generator
    calebkiage
  4. area:authentication enhancement generator
    samwelkanda
  5. 8 of 8
    Epic WIP
  6. area:authentication enhancement type:enhancement vscode-extension
  7. WIP type:bug vscode-extension
    thewahome
@maisarissi maisarissi added status:waiting-for-triage An issue that is yet to be reviewed or assigned type:feature New experience request labels Jul 24, 2024
@github-project-automation github-project-automation bot moved this to Needs Triage 🔍 in Kiota Jul 24, 2024
@andrueastman andrueastman removed the status:waiting-for-triage An issue that is yet to be reviewed or assigned label Jul 25, 2024
@andrueastman andrueastman moved this from Needs Triage 🔍 to Proposed 💡 in Kiota Jul 25, 2024
@baywet
Copy link
Member

baywet commented Jul 25, 2024

Thanks for creating this. Here is my feedback: this is probably more an epic that a feature. And the requirements are probably user stories. I suggest we break this in smaller pieces, and start by addressing requirement 4 as it's a low hanging fruit.
Thoughts?

@maisarissi
Copy link
Contributor Author

maisarissi commented Jul 25, 2024

Yes, this is an epic. I was trying something new and was about to ask for feedback whether having epics like this helps! My idea is for us now to break down into user stories and then smaller tasks. I thought that epics like this one could help us organize all the efforts needed to implement "a feature" as a whole.
I would say the requirements 1 and 4 are the ones I believe we should start with, as having a way to provide auth type and reference id in CLI would also help already with secure APIs.

@maisarissi
Copy link
Contributor Author

I have created 5 new issues and attached to this epic

@baywet baywet added this to the Kiota v1.18 milestone Aug 2, 2024
@baywet baywet added enhancement New feature or request generator Issues or improvements relater to generation capabilities. type:enhancement Enhancement request targeting an existing experience labels Aug 2, 2024
@baywet baywet moved this from Proposed 💡 to Todo 📃 in Kiota Aug 2, 2024
@petrhollayms petrhollayms added the area:authentication Focused on the extension module of the product label Aug 16, 2024
@petrhollayms petrhollayms changed the title Enabling authenticated API calls from Kiota API plugins [Epic] Enabling authenticated API calls from Kiota API plugins Aug 21, 2024
@petrhollayms petrhollayms moved this from Todo 📃 to In Progress 🚧 in Kiota Sep 4, 2024
@baywet baywet modified the milestones: Kiota v1.18, Kiota v1.19 Sep 5, 2024
@baywet
Copy link
Member

baywet commented Sep 11, 2024

@petrhollayms here I think we have misalignments. This epic is tagged for 1.8.1/GA but the last item on the checklist is in the backlog?

@baywet baywet modified the milestones: Kiota v1.18.1, Kiota v1.19 Sep 30, 2024
@andrueastman andrueastman modified the milestones: Kiota v1.19, Kiota v1.20 Oct 3, 2024
@petrhollayms
Copy link
Contributor

Yes, this is often the case with epics though. We shall not be therefore reporting epics in Changelog etc. but the individual stories representing new features, capabilities and bug fixes.

@samwelkanda samwelkanda modified the milestones: Kiota v1.20, Kiota v1.21 Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:authentication Focused on the extension module of the product enhancement New feature or request Epic generator Issues or improvements relater to generation capabilities. type:enhancement Enhancement request targeting an existing experience type:feature New experience request
Projects
Status: In Progress 🚧
Development

No branches or pull requests

5 participants