GithubHelp home page GithubHelp logo

abhishek-gawade-programmer / kernelci-api Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kernelci/kernelci-api

0.0 0.0 0.0 654 KB

KernelCI API - Database - Pub/Sub

License: GNU Lesser General Public License v2.1

Shell 3.30% Python 81.02% HTML 14.21% Dockerfile 1.09% Jinja 0.38%

kernelci-api's Introduction

KernelCI project logo

KernelCI API

This repository is a work-in-progress implementation of a new API and database interface for KernelCI, to replace kernelci-backend. It's mainly based on FastAPI, Mongo DB and Redis.

Please refer to the architecture for more details.

Getting started with docker-compose

Please refer to start Docker containers of all the services.

Note that the FastAPI server is running on port 8000 inside the container, but it's exposed to the host via port 8001 to avoid conflicts with other services. This can be adjusted for each setup in docker-compose.yaml.

Authentication

Generate a new key for Authentication ). After that, please refer to create and add a user in Mongo DB. The user can also generate an API token to use API endpoints.

Ultimately, there will be a web frontend to provide a login form. We don't have that yet as this new KernelCI API implementation is still in its early stages.

API Documentation

The FastAPI server will automatically generate documentation for the API itself and serve it directly: http://localhost:8001/latest/docs

To use the generated documentation, first open it with a web browser. Then click on "Authorize ๐Ÿ”“", enter the user name and password and click on the new "Authorize" button.

This is based on OpenAPI, and you can also download the openapi.json file to use it with other tools: http://localhost:8001/latest/openapi.json

API Testing

Please follow the below instructions to test API endpoints.

Install Python requirements with additional packages for testing:

pip install -r docker/api/requirements-dev.txt

We have already created .env file from Authentication section. Export the file with SECRET_KEY environment variable in it:

export $(cat .env)

Run the below command from kernelci-api directory:

pytest -v tests/unit_tests/

This will start running unit test cases from kernelci-api/test directory and display results.

In addition to the unit tests, end-to-end tests for API has been developed. A Github action check test is running on every push and pull to execute the end-to-end tests.

In order to ease the execution of the tests locally, a shell script run_e2e_tests.sh has been introduced.

Run the below command from kernelci-api directory:

./run_e2e_tests.sh

This will start running e2e test cases in a docker-compose environment from kernelci-api/e2e_tests directory and display results.

kernelci-api's People

Contributors

gctucker avatar jenysadadia avatar hardboprobot avatar nuclearcat avatar pawiecz avatar alexandrasp avatar a-wai avatar patersonc avatar mharyam avatar sbdtu5498 avatar thomasschmidtgf avatar

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.