Giter Site home page Giter Site logo

sonata-nfv / tng-api-gtw Goto Github PK

View Code? Open in Web Editor NEW
1.0 7.0 12.0 576 KB

The API Gateway for the 5GTANGO Verification&Validation and Service Platforms (built on top of SONATA).

Home Page: http://5gtango.eu

License: Apache License 2.0

Ruby 76.99% Shell 20.37% Dockerfile 2.64%
api gateway sonata 5gtango

tng-api-gtw's Introduction

Build StatusJoin the chat at https://gitter.im/sonata-nfv/Lobby

5GTANGO API Gateway

This is the 5GTANGO API Gateway for the Verification&Validation and Service Platforms (built on top of SONATA) repository.

Please see details on the overall 5GTANGO architecture here.

How does this work?

This component has the follwoing architecture:

All external requests enter the security gateway, where they are redirected to the adequate port and to the router component, where the request is delivered to the pre-defined component.

For further details on those components, please check their README files

Versioning

For the versions available, see the link to releases on this repository.

Licensing

For licensing issues, please check the Licence file.

Feedback-Channel

  • Please use the GitHub issues to report bugs.
  • You may use the mailing list [email protected]

tng-api-gtw's People

Contributors

anapolg avatar efotopoulou avatar ekapassa avatar jbonnet avatar luishensruiz avatar mtouloup avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

tng-api-gtw's Issues

Add /pings API

This endpoint shall provide to it's consumers a list of available endpoints.

This features creates a strong dependency with those modules... a WiP.

Fix build_path (L78)

When the path is not found, [400, {}, ["Error finding GET"]] is being returned, instead of raising an exception

Improve logging

Currently still going to a file, we want it in the STDOUT (STDERR)

Fix path translation

.../api/v3/packages/status/1234... is not being correctely translated into .../packages/status/1234...

Integrate with the Slice Manager

To create an NST do this:

curl -i -H "Content-Type:application/json" -X POST -d'{"name":"Rubik_NST", "version":"<version_number>", "author":"<author_name>", "vendor":"<vendor_name>", "nstNsdIds":[{"NsdId":"<network_service_ID>"}]}' pre-int-sp-ath.5gtango.eu:32002/api/nst/v1/descriptors

Valid NST example:

{
  "designer": "Pol",
  "id": "30ef541d-24ee-4ec3-8c00-f53b4a3791cb",
  "name": "Rubik_NST",
  "notificationTypes": "",
  "nstNsdIds": [
    "6a01afdc-9d42-4bc9-866c-a8a3868fdf5e"
  ],
  "onboardingState": "ENABLED",
  "operationalState": "ENABLED",
  "usageState": "NOT_IN_USE",
  "userDefinedData": "",
  "vendor": "5gTango",
  "version": "1.0"
}

Design, implement and test an API key mechanism

Depends on #32. Current implementation gives modules/mico-services the same mechanism as human users: a token that expires with time. This is not practical: we want users to be able to generate API tokens that can be used without such time restrictions. The user can renew his/her API keys in the Portal or through the API (with the old key). These API tokens can then be used to authenticate/authorize the user's module (e.g., SDK, OSS, ...) to access the V&V/SP.

Include Slice Manager routes

According to the 2018-03-12 call:

  • POST /descriptors (where JSON object is a nst_content)
  • GET /descriptors/{nstId}
  • DELETE /descriptors/{nstId}
  • POST /nsi
  • GET /nsi
  • GET /nsi/{nsiId}
  • DELETE /nsi/{nsiId}
  • POST /nsi/{nsiId}/terminate

Add OPTIONS method

The Portal needs the options method. In SONATA we did the following:

    options '/?' do
      response.headers['Access-Control-Allow-Origin'] = '*'
      response.headers['Access-Control-Allow-Methods'] = 'POST,PUT'      
      response.headers['Access-Control-Allow-Headers'] = 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With'
      halt 200
    end

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.