Git Product home page Git Product logo

apk's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apk's Issues

Admin Domain Services implementation

This issue is created to track the progress of Admin Domain Service implementation.

Functionality of Admin DS

The Admin DS is capable of handling all the admin related flows and use cases in APK control plane. This includes,

  • Rate limiting policy related flows
  • Key manager related flows
  • Role/Scope mappings

Proposed Solution

The service layer will be implemented using Ballerina. Ballerina interoperability feature will be used to bring the existing (java) business logic in carbon-apimgt component to the ballerina service.

High level view of a domain service will be as follows.

apkds-new drawio

Sub tasks

[APK Management server and Adapter] Extract Data for Enforcer XDS

Description:
This is to extract data for Enforcer XDS.

Need to debug and check how enforcer gets consumer keys currently.
Update application.proto to send consumer keys and do the related changes in enforcer side.

  • ApplicationData CRD (which contains a list of apps) has changed to single Application CRD. Need to consider this design change.

Create new configuration models

A new configuration model will be introduced for the domain service since the previous carbon dependencies will no longer be used with new services.

Proposed Approach

  • Single toml file to contain all the configurations. According to the call with the ballerina team, we can use the Config.toml for this purpose.
  • Record mappings on the ballerina side (similar to api-manager.xml).
  • Startup service to start all internal components related to apimgt (similar to APIMStartupComponent). Need to use ballerina interops for this too to call as a function from the ballerina code.
  • Use an object mapper from the Java side to map the configurations in runtime.

Remove kernel, osgi, etc from admin related flows

This issue is created to track the progress of removing all kernel, axis2, osgi, etc. related dependencies from the admin related flows.

The new domain services will not rely on the carbon framework. Hence we will be removing all those from the existing carbon-apimgt code

Refactor error handling in Admin flows

This is created to track the progress of error handling in admin service flows. The previous error handling mechanism was reliant on CXF. The new approach will remove this coupling and make the error handling generic.

Runtime API Implementation

This issue is created to track the progress of Runtime API Implementation.

Functionality of Runtime API

The Runtime API interacts with the Kubernetes API Server in the Data plane and serves as a backend for the Runtime UI and APK CLI.

Sub tasks

Develop Interfaces


Implement the API Interfaces in Go


Improvements to Runtime API Server

  • #79
  • #70
  • Merge k8s client implementation with server
  • Implement Authorization for APIs with STS(oauth2)

Refactor existing Admin REST API layer

This is created to track the progress of moving the business logic in existing REST API layer to a lower level so that it can be reused through Ballerina interoperability with the new DS.

API Rate Limiting

Description

Support API Level (API, Resources, and HTTP method level), Application Level, and Subscription Level rate limitings using Envoy Rate-limit service.

API invocation wth rate limits

Sub Tasks

DevPortal Domain Service Implementation

Purpose

This issue is created to track the progress of Developer Portal Domain Service.

Functionality of DevPortal DS

The DevPortal DS consists of all the developer portal related flows and functionalities related in APK control plane. This includes,

  • API related flows
  • Application related flows
  • Subscription related flows
  • Throttling policy related flows

Sub tasks

Mono repo POC to work with multiple languages considering all CI/CD usecases

Purpose

This issue is created to track the progress of POC to support multiple language builds and CI/CD use cases using Gradle build tool.

Sub tasks

  • Use Gradle for building, testing, and running custom tasks for each language module (Java, Ballerina, Go, Node.js).
  • Run PR checks, release components, and create release version tags per component upon PR open/merge via GitHub actions and Gradle tasks.
  • Manage dependencies among projects (outer modules) and sub-projects (inner modules).
  • Push docker images to docker hub.
  • Publish build artifacts to remote maven repository with POM.

[Runtime API] Define OAS definition

This issue is created to track the progress of Runtime API OAS development. The following API will be defined in the OAS specification.

  • APIs (List, Create, Update, Delete)
  • Services (List)
  • Gateways (List, Create, Update, Delete)
  • Validations
  • Import Export
  • Policies (List, Create, Delete)

APK Management server and Adapter implementation

Functionality of APK Agent Client

APK Agent is the responsible party for managing the data-plane cluster by managing its components as well as keeping the control plane sync-up with data-plane.

Mainly it has the following functionality

  • Talks to the K8s API server and manages (Create, Update, Delete) resources in the K8s cluster(DP) -> Create APIs (in UI driven approach), Applying policies (from UI)
  • Update rate limit service with rate limit policies -> Will be an xDS communication
  • Update enforcer with subscription details, etc. -> Will be an xDS communication
  • Should have a K8s operator to listen on the resources created on the DP cluster.
  • Communicate with CP - xDS

Functionality of APK Management Server

Management server is the responsible party for keeping the CP & DP sync by communicating with APK clients in each data-planes (or in the same control-plane when we run in a single cluster).

  • Send API create/delete/update, Subscription, Policy events to the APK client - xDS
  • Service registering.
  • Update control plane with the resources created on dataplane(using cli) such as APIs, Policies, etc..

APK Management Server to APK Agent Client Communication

API Agent Client should be associated with a k8s operator, which is watching for resource updates and sending the updates to the control plane’s Management Server and the Gateway.

Since we have only one control plane available, we decided to make this communication as a gRPC client to server streaming communication.

Restructure APK Portals

Aug 29th - Sept 12th

Oct 3rd -

Aug 29th - Sept 5th

  • PKCE support for web portals

Sept 19th

  • Verify the security / dev experience

Sept 26th -

  • Removing unwanted UI features from portal apps

Sept 26th - Oct 10th

  • OIDC flow implementation

  • Make React apps independent

Back Office Domain Service Implementation

This issue is created to track the progress of Backoffice Domain Service implementation.

Functionality of Back Office DS

The Backoffice DS is capable of handling all the backoffice related flows and use cases in APK control plane. This includes,

  • Creating backoffice APIs from runtime APIs
  • Add metadata to the backoffice APIs
  • Manage the backoffice APIs
  • Publish the backoffice APIs

Sub tasks

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.