npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

volos-swagger-oauth

v0.0.2

Published

A swagger-node fitting for volos oauth

Downloads

99

Readme

Volos-Swagger-OAuth

This module allows you add and configure Volos security without writing any code - just by declaring it in the Swagger in your Swagger-Node project. The following policies are currently supported by this module:

  • API Key
  • OAuth 2.0
  • Basic Auth

More information on Volos here: https://github.com/apigee-127/volos

More information on applying OAuth policies here: https://github.com/apigee-127/a127-documentation/wiki/Policies#oauth

Example app here: https://github.com/apigee-127/swagger-node-examples/tree/master/volos-plugins

Installation

  1. Add this and the volos modules you plan use to your application dependencies. Example:
npm install --save volos-swagger-oauth
npm install --save volos-oauth-apigee
  1. Add a volos-swagger-oauth fitting definition to your bagpipes definition (config/default.yaml). It must be declared before the swagger_router (defining at the top of the bagpipes section is safe):
  bagpipes:

    volos-swagger-oauth:                # <= DEFINED HERE
      name: volos-swagger-oauth

    _router:
      name: swagger_router
  1. Add the volos-swagger-oauth fitting to any pipe on which you need security to be included. It should be inserted above the swagger_security module:
    swagger_controllers:
      - onError: json_error_handler
      - cors
      - volos-swagger-oauth               # <- RUN HERE
      - swagger_security
      - _swagger_validate
      - express_compatibility
      - _router
  1. Add a Swagger 2.0 Spec security Definitions tag to your Swagger. Something like this:
securityDefinitions:
  OAuth2:
    type: oauth2
    flow: application
    tokenUrl: http://localhost:10010/accesstoken
    scopes:
      read: read access
  1. Add a x-volos-resources extension tag to your Swagger with your policy configuration (see the volos-swagger readme for more details. This will configure the Volos OAuth provider. Note that the key ('OAuth2' in this example) must match the name used in the securityDefinitions:
x-volos-resources:
  OAuth2:
    provider: volos-oauth-apigee
    options:
      tokenLifetime: 300000
      key: *apigeeProxyKey
      uri: *apigeeProxyUri
      validGrantTypes:
        - client_credentials
        - authorization_code
        - implicit_grant
        - password
      passwordCheck:
        helper: volos
        function: passwordCheck
      tokenPaths:  # These will be added to your paths section for you
        authorize: /authorize
        token: /accesstoken
        invalidate: /invalidate
        refresh: /refresh
  1. Add the Swagger 2.0 security tag to any paths or operations on your Swagger you would like your security policy to apply to along with any configuration that is necessary:
paths:
  /hello:
    x-swagger-router-controller: hello_world
    get:
      description: Returns 'Hello' to the caller
      operationId: hello
      parameters: []
      security:
        - OAuth2: [ read ]