feat(nestjs): support @ApiBearerAuth and custom auth decorators #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Closes #94
This PR adds support for
@ApiBearerAuthand per-operation security in NestJS mode.Changes
Security Decorators Support
@ApiBearerAuth(name?)- Bearer token authentication@ApiBasicAuth(name?)- Basic authentication@ApiOAuth2(scopes[], name?)- OAuth2 with scopes@ApiSecurity(name, scopes?)- Custom security schemeCustom Auth Decorators via Config
Added
authDecoratorsconfig option to support composite decorators:{ "nestjs": true, "openapi": { "securityDefinitions": { "bearerAuth": { "type": "http", "scheme": "bearer" } }, "authDecorators": { "Auth": "bearerAuth", "AdminAuth": "bearerAuth" } } }Usage Example
Generated OpenAPI
Files Changed
packages/tspec/src/types/tspec.ts- AddedauthDecoratorsoption typepackages/tspec/src/nestjs/types.ts- Addedsecurityfield to method metadatapackages/tspec/src/nestjs/parser.ts- Added security decorator parsing logicpackages/tspec/src/nestjs/openapiGenerator.ts- Added security field to operationspackages/tspec/src/generator/index.ts- Pass authDecorators to parserdocs/guide/nestjs-integration.md- Added Security Decorators documentationTests
@ApiBearerAuth,@ApiBasicAuth,@ApiOAuth2,@ApiSecurityauthDecoratorsconfig