Skip to content

Add authentication validation to the JSON schema #2646

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

Merged
merged 36 commits into from
Jun 18, 2025

Conversation

sander1095
Copy link
Contributor

@sander1095 sander1095 commented Apr 9, 2025

Why make this change?

Closes #2643

The JSON schema does not contain a list of auth providers, nor does it validate the use of the jwt property. This results in a suboptimal developer experience. By adding this list and validation, developers have an easier time learning about all the options and can be more productive.

What is this change?

  • This change modifies the JSON schema with a list of providers and validation of the providers and the jwt property. StackOverflow helped me with the finer details of the validation.
    • I also added tests to validate my changes.
  • Migrate from NJsonSchema to Newtonsoft.Json.Schema because NJsonSchema doesn't validate anyof + const correctly. Newtonsoft.Json.Schema does work in this case.
  • Changed https to http in the schema file to be spec compliant. Draft-07's original URL is http-based.
    • If you try to validate a document with the https url, it will fail because of the unknown schema URL.
    • This does not impact security. The schema should just be a placeholder for the json validator binary to know what rules to use, and it's redirected to https when you navigate to it, anyway.

How was this tested?

  • Integration Tests
  • Unit Tests

Sample Request(s)

image

image

image

@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

Copy link
Contributor

@Aniruddh25 Aniruddh25 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thanks for adding this validation and improving developer experience.

@sander1095
Copy link
Contributor Author

@Aniruddh25 I've processed your comments.

I took a look at the failures of the CI pipeline of the last commits. They seem to be unrelated to my changes: The task has failed because you are using Ubuntu 24.04 or later without mono installed. See https://aka.ms/nuget-task-mono for more information..

Let's hope that a re-run will make them go green!

@sander1095 sander1095 requested a review from Aniruddh25 April 14, 2025 14:33
@sander1095
Copy link
Contributor Author

@RubenCerna2079 Could you perform a re-run on this PR :)

@Aniruddh25
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@sander1095
Copy link
Contributor Author

I see I broke some config tests. I'll hopefully have time to look into this next week!

@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@sander1095 sander1095 requested a review from anushakolan as a code owner June 5, 2025 20:51
sander1095 and others added 2 commits June 5, 2025 22:51
This version also can't be made available in their private feeds. Based on Ruben Cerna's advice, I added 13.0.3-beta1 instead. This then causes NU1605 issues, which I was also adviced to ignore.
@Aniruddh25
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@Aniruddh25
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@sander1095
Copy link
Contributor Author

I can now see the integration test failure reasons! Some of them fail because the package migration changed the JSON Schema result messages. I can update this soon.

@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

Copy link
Contributor

@Aniruddh25 Aniruddh25 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for pushing through this.

@Aniruddh25 Aniruddh25 enabled auto-merge (squash) June 17, 2025 19:06
@RubenCerna2079 RubenCerna2079 self-assigned this Jun 17, 2025
@RubenCerna2079
Copy link
Contributor

/azp run

Copy link

Azure Pipelines successfully started running 6 pipeline(s).

@RubenCerna2079
Copy link
Contributor

Hey @sander1095, I saw that the tests that were failing are not due to your PR, so I decided to ignore them in order to get your PR in. I will solve this issue in a separate PR. Thanks for your work!

Copy link
Contributor

@RubenCerna2079 RubenCerna2079 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you for these changes!

Copy link
Contributor

@Aniruddh25 Aniruddh25 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for these contributions!

@Aniruddh25 Aniruddh25 merged commit d05fecb into Azure:main Jun 18, 2025
11 checks passed
@sander1095 sander1095 deleted the add-auth-to-jsonschema branch June 18, 2025 05:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Authentication providers to JSON schema for autocomplete and validation
3 participants