Proposal 1: WSO2 API Manager theme editor for Developer Portal
The WSO2 API Manager 3.x has React-based web portals. These portals have been built using Material-UI as the components library. As a result, the theming capabilities of the Portals have been inherited from the theming system of Material UI. You can find more information about theming in the Material-UI docs here[2]. The requirement of this project is to build a theme editor for the API Manager Developer Portal which allows admin users to interactively design and modify the theme from this editor. At the moment, they have to know the keys in the defaultTheme.js and update the values and reload the apps to see the changes.
There is a theme editor tool[1] for Material-UI which supports creating and downloading a custom theme.js file. This could be used as an example of interactive theme editing.
Deliverables
An editor to interactively edit the developer portal theme
Skills Needed
Javascript, ReactJS, npm, Web Workers, JSS, Java
References
[1]: https://github.com/in-your-saas/material-ui-theme-editor
[2]: https://github.com/mui-org/material-ui
Possible Mentor/s
Former user (Deleted) Former user (Deleted) Former user (Deleted)
Proposal 2: Integrate WSO2 API Manager with Virus Scanning Tools
Various standard virus scanning tools provide APIs and extension points that can be used by API Management solutions to integrate for scan viruses. API Calls which comes with attachments are the main interest as these attachments can carry malicious documents and viruses.
This project is aiming to do background research on integrating WSO2 API Manager and Micro Gateway with virus scanning tools. After the research, it's required to develop the necessary extensions to the product to integrate with the virus scanning to provide this capability.
Deliverables
Extensions required to integrate with virus scanning tools with API Manager and Micro Gateway.
Skills Needed
Java
Possible Mentor/s
Proposal 3: Swagger/OpenAPI resource editor for API Manager publisher portal
In the API Publisher portal, We allow users to edit the Open API Specification(OAS)/Swagger definition via Swagger Editor tool or API Manager specific Resources UI page. API Publisher portal has a UI editor for API resources. In this project, we expect the student to improve and implement the OAS/Swagger editing capabilities in the API Publisher portal to support
- Defining Operation Response/Request schemas
- Modify Operation Parameters
- Add/Edit Operation documentations
- View referenced Parameter, Response definitions
You can have a look at existing OAS/Swagger GUI editors from this page[1]
Deliverables
Enhance the existing API Resource editor UI to support customizations in API resource definitions.
Skills Needed
Swagger/OpenAPI specification, Javascript, ReactJS, npm, Web Workers, JSS, Java
References
[1]: https://openapi.tools/#gui-editors
Possible Mentor/s
Former user (Deleted) Former user (Deleted) Former user (Deleted)
Proposal 4: Revamp caching feature to support advanced response caching capabilities in API Manager
Response caching support at API Manager allows users to reduce the frequency of calls that need to be served by their backend, thereby freeing up resources to server
more incoming requests. API Manager currently supports response caching but there is a lot more potential for improvement in this area in order to make the best use
of this powerful feature.
Deliverables
- Implement Caching solution that supports enhanced features such as,
- Support cache expiry time as a time interval in seconds as well as at a particular time in GMT
- Support cache management REST API to enable cache management functionality such as manual cache clearing
- Support cache level statistics such as number of cache misses, number of cache entries.
- Expose above cache via a synapse mediator which supports the following features,
- Support configurable cache keys
- Support conditionally skipping caches for a set of response codes(support wild card and exact match) and header value match.
- Supportability include Accept headers as part of the cache key
- Support Cache-Control headers
- Enhance Publisher REST API and UI to allow users to configure enhanced response caching functionality
Skills Needed
Java, Javascript, ReactJS
References
Possible Mentor/s
Proposal 5: gRPC support for API Manager Analytics and Traffic manager
API Manager components communicate with other components to support analytics and throttling. For that events are published to those respective components from different
components. gRPC is needed to be implemented in between those components and the aim is to integrate gRPC with analytics and traffic manager components.
Deliverables
- Implement gRPC client to public events
- Implement common publisher that can be used to publish events to traffic manager and analytics
- Integrate common publisher in API gateway, store, and publisher to publisher events
- Implement gRPC receiver
- Implement gRPC receiver for the traffic manager
- Implement gRPC receiver for analytics
Skills Needed
JAVA, Siddhi, gRPC
References
Possible Mentor/s
Proposal 6: Grafana based analytics for WSO2 Identity Server
Description
The objective of the project is to generate identity analytics dashboards for identity server using Grafana[1]. The project will primarily focus on implementing login and session analytics dashboards.
WSO2 Identity Server can publish login and session data over HTTP events. These data needed to be indexed and integrated with Grafana for analytics. Elastic stack could be used as one of the possible indexer. However you have the freedom to choose the datasource for Grafana.
Deliverables
- Login and session analytics Grafana dashboards for WSO2 Identity Server
Skills Needed
- Experience in Grafana will be an added advantage
- Data Querying
References
[1] - https://grafana.com/
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 7: gRPC support for Enterprise Integrator
Description
gRPC is an inter-process communication protocol that is implemented on top of HTTP2. gRPC can use protocol buffers as both its Interface Definition Language (IDL) and as its underlying message interchange format.
This project includes adding gRPC support for WSO2 EI to expose gRPC services as well as invoke gRPC services.
Deliverables
- Implementation of gRPC transport/inbound endpoint
- Documentation
- Unit/Integration tests
Skills Needed
Fundamentals of gRPC and Protocol Buffers, Knowledge in WSO2 EI Fundamentals
References
[1] https://grpc.io/
[2] https://docs.wso2.com/display/EI640/WSO2+Enterprise+Integrator+Documentation
[3] https://docs.wso2.com/display/EI640/Custom+Inbound+Endpoint
[4] https://docs.wso2.com/display/EI640/ESB+Transports
Possible Mentor/s
Proposal 8: Endpoint Resiliency with Hystrix for Enterprise Integrator
Description
The resilient invocation of external services is implemented at the endpoint parameters that we configure. The resiliency capabilities can be vastly improved if we can integrate endpoint timeout, retry and circuit-breaking implementation with Hystrix.
Deliverables
- Design docs on the possible ways that we integrate with Hystrix.
- Implementation of Hystrix Integration.
- Documentation
- Unit/Integration tests
Skills Needed
Basic understanding of resiliency patterns and WSO2 EI endpoint management.
References
[1] https://github.com/Netflix/Hystrix
[2] https://docs.wso2.com/display/EI640/WSO2+Enterprise+Integrator+Documentation
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 9: Salesforce CDC source for Streaming Integrator
Description
Salesforce is a widely used solution in enterprises. Need to sync Salesforce data with other third party systems on-demand is becoming a frequent requirement. Technically this can be done in two methods.
(i) Using Salesforce outbound messaging
(ii) Using Salesforce CDC API
First approach is already feasible using existing features of Streaming Integrator. However we will need to provide pre-configured solution on top of that as part of this project. Also the student will need to implement Salesforce CDC Siddhi source for Streaming Integrator including tests and documentation. Siddhi is the stream processing library on which Streaming Integrator is implemented.
Deliverables
- Documentation and pre configured samples on using Salesforce outbound messaging
- Salesforce CDC Source implementation, testing and documentation
Skills Needed
Java, Fundamentals of Salesforce CDC, Fundamentals of Siddhi Sources and Source mappers
References
[1] https://github.com/wso2/streaming-integrator
[2] https://siddhi.io/
[3] https://siddhi.io/community/
[4] https://siddhi.io/en/v5.1/docs/query-guide/#source
[5] https://developer.salesforce.com/docs/atlas.en-us.change_data_capture.meta/change_data_capture/
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 10: WSO2 API Manager integration with Prometheus
Description
Currently, in the WSO2 API Manager, the default analytic engine is WSO2 Stream Processor (SP). All the API related analytics, alerts and other information are collected at WSO2 SP. The objective of this project is to do an integration with Prometheus where you have the same capabilities that are in WSO2 SP. In addition to those existing features, we can add Prometheus features as well. The Prometheus could run in a physical machine or in Kubernetes.
Deliverables
- API Manager/Prometheus integration-related artifacts and documentation
- Webinar
- Screencast
Skills Needed
Java, Prometheus
References
[1] https://wso2.com/api-management/
[2] https://prometheus.io
Possible Mentor/s
Proposal 11: WSO2 API Manager intelligent traffic prediction
Description
API Monitoring and traffic analysis is becoming a key important area of focus in API Management solutions. With the rising innovations in the machine learning domain, there are many tools that available for predicting the future based on the current data. This project aims to integrate machine learning techniques with API traffic patterns to predic future traffic patterns which will be highly benifit for project managers to understand the future need and scalability requirements. These prediction data will be benificial for taking business decisions.
Deliverables
- Python or relavent code samples
- Dashboard components
- Screencast
Skills Needed
Java, Python, React
References
[1] https://wso2.com/api-management/
[2] https://www.tensorflow.org/
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 12: Adaptive Authentication Flow Design UI
Description
WSO2 Identity Server uses JS like scripts to define the adaptive authentication flow. The purpose of this project is to develop a UI based tool where Identity Admins can design the authentication flow by using drag and drop components and providing any required parameters. That will help the Identity admins to define the authentication flow with little or no prior scripting syntax knowledge. And it will also help to present, and understand the flow easily.
The tool at the background should generate or modify the authentication script which is currently used and should do vice versa and update UI based flow if the script is updated directly.
Deliverables
- UI based tool as mentioned in the description
- Documentation
Skills Needed
- JS
- UI frameworks
- Java (Optional)
References
[1] https://docs.wso2.com/display/IS570/Adaptive+Authentication
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 13: WSO2 IS integration with an Open Source IoT
Description
This project is to build a real-world IoT device integrated with WSO2 IS for delegated access control using OAuth2. We expect the participant to decide on a problem to be solved with an IoT solution and choose an open-source IoT server or framework to build the device. The proposed device should have some actions and preferably solve a real-world problem.
Deliverables
- Select an open-source third-party IoT Server or Framework
- Get/Build some real IoT device, have API to do real work (Turn a light off/on)
- Delegate access with WSO2 IS. OAuth2
- Documentation
- Demo
- Articles
Skills Needed
- IoT
- Knowledge of delegated access control (OAuth 2)
References
[1] https://docs.wso2.com/display/IS570/Delegated+Access+Control
[2] https://tools.ietf.org/html/rfc6749
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 14: Anomaly detection for WSO2 IS with an Open-source ML/Analytic server
Description
Login, Logout, Token Request, Refresh or any activity data which are generated based on WSO2 IS needs to be fed into an analytics engine. The analytics engine can be selected or can be written from the ground up. The analytics engine needs to support microservice architecture.
Implementation can use Markov-Chain, Time-Series analysis, Multi-Domain Segmentation or any other model(s) suitable for the purpose.
The system should return a probability (0 to 1) if queries the engine with {User, Activity, Time, and activity data}
The adaptive authentication in WSO2 IS may use this probability to evaluate the current login request whether it needs to be presented to 2nd or 3rd factor.
Token validation in WSO2 IS may use this result while validating or refreshing tokens.
Deliverables
- User behavior analysis engine (or scripts to be installed to selected analytics server)
- Script to simulate some user behavior, repeated.
- Documentation
Skills Needed
- Analytics/Data Science
- Basic knowledge on authentication and OAuth 2.0
References
[1] https://docs.wso2.com/display/IS570/WSO2+Identity+Server+Documentation
[2] https://docs.wso2.com/display/IS570/Analytics
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 15: Support for OAuth 2.0 Token Exchange Specification
Description
This specification defines a protocol for an HTTP- and JSON- based Security Token Service (STS) by defining how to request and obtain security tokens from OAuth 2.0 authorization servers, including security tokens employing impersonation and delegation. We can implement a new token grant type to facilitate delegation and impersonation as new features for Identity Server.
Deliverables
- WSO2 IS compliance for token exchange Specification
- Unit/Integration Tests
- Documentation
- Article/Blogs/Screencasts
Skills Needed
- Java
- Basic knowledge of authentication and OAuth 2.0
References
[1] https://tools.ietf.org/html/rfc8693
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 16: QR code based authentication
Description
The user is already logged into an agent application of the Identity Server in the users mobile phone. Now the user wants to log into some web application and use a QR code base login. The Identity Server will prompt an authentication page with a QR code to be scanned. The user then scans the QR code using the agent mobile app (which the user is already logged into). Then the QR code scan page that prompted from the Identity Server is redirected to the web application with an authenticated session (and/or access token).
The scenario would be similar to how the WhatsApp web client authentication works.
The user is able to login to the web application using his/her authenticated session in the mobile agent app.
Deliverables
- Integrated functionality to the WSO2 Identity Server to cater to the above use case.
- Sample agent app (preferably cross-platform)
- Unit/Integration Tests
- Documentation
- Article/Blogs/Screencasts
Skills Needed
- Java
- Basic knowledge in mobile application development
- Basic knowledge of OAuth2 and OIDC protocols
Possible Mentor/s
Former user (Deleted) Former user (Deleted)
Proposal 17: Android SDK to Enable authentication for WSO2 Identity Server
Description
Software Development Toolkits(SDKs) are trending among application developers when enabling authentication and authorization capabilities to the applications. The objective of this project is to build an SDK for Android developers to cater following functionalities,
- Login
- Logout
- Get user information
- Get session state
- Etc.
Deliverables
- Fully functioning SDK to enable authentication to an android mobile application using WSO2 Identity Server
- Sample application built using the above SDK
Skills Needed
- Android
- Mobile app development
- Read and Interpret Specifications
Possible Mentor/s :
Proposal 18: iOS SDK to Enable authentication for WSO2 Identity Server
Description
Software Development Toolkits(SDKs) are trending among application developers when enabling authentication and authorization capabilities to the applications. The objective of this project is to build an SDK for iOS developers to cater following functionalities,
- Login
- Logout
- Get user information
- Get session state
- Etc.
Deliverables
- Fully functioning SDK to enable authentication to iOS mobile application using WSO2 Identity Server
- Sample application built using the above SDK
Skills Needed
- iOS
- Mobile app development
- Read and Interpret Specifications
Possible Mentor/s :
Proposal 19: Node.js SDK to Enable authentication for WSO2 Identity Server
Description
Software Development Toolkits(SDKs) are trending among application developers when enabling authentication and authorization capabilities to the applications. The objective of this project is to build an SDK for Node.js developers to cater following functionalities,
- Login
- Logout
- Get user information
- Get session state
- Etc.
Deliverables
- Fully functioning SDK to enable authentication to a Node.js application using WSO2 Identity Server
- Sample application built using the above SDK
Skills Needed
- Node.js
- Read and Interpret Specifications
Possible Mentor/s :
Proposal 20: IAM Controller(IAM-CTL)- Command Line Extension for Identity provider management
Description
This will enhance the developer’s experiences of IAM artifact which is an identity provider. It will help to create identity providers and view the list of identity providers easily through the terminal.
Deliverables
- CLI for identity provider management
- Unit/Integration Tests
- Documentation
- Article/Blogs/Screencasts
Skills Needed
- Go language
- Cobra (CLI)
- survey packages
Possible Mentor/s :
Proposal 21: Graphical representation for performance test results
Description
WSO2 Identity Server has a performance test suit [1] that runs regularly and measures the performance of the product constantly. At the moment this test suit generates an excel sheet [2] with performance numbers and lacks a graphical visualization. A visual representation is very important when it comes to understanding the performance number and what they mean.
Deliverables
- Integrate a visual representation generator module to the existing performance test suit.
Skills Needed
- Shell scripting
- JMeter.
References
[1] - https://github.com/wso2/performance-is