Week 4 meeting and activities
(June 18,2024)
Attendees
Discussion
- Gave updates and demo on previous week's work.
- Discussed on the endpoint requirements for the One Shot Analysis and User Copyright Findings.
- Resolved some queries regarding the architecture of APIs.
Activities
-
One Shot Analysis
- Exposed 3 new endpoints to enable One Shot Analysis in the REST API:
/uploads/oneshot/nomosto run a Nomos scan on the uploaded file./uploads/oneshot/monkto run a Monk scan on the uploaded file./uploads/oneshot/ceuto run Copyright, Email and URL scan on the uploaded file.
- All of these endpoints accept a file binary and return the scan results in the following format:
- Data Type : What is the scan returning (Nomos, Monk, CEU). Can take values like
licenseandcopyright. - Highlight : The highlighted text in the scan results based on the data type (license, copyright, emails, URLs etc).
- Data Type : What is the scan returning (Nomos, Monk, CEU). Can take values like
- Decided on not returning the scanned file in the response as it increases unnecessary load on the server. It can always be accessed from the frontend.
- Uplink PR: feat(api): Added OneShot analysis endpoints for license & copyright
- Exposed 3 new endpoints to enable One Shot Analysis in the REST API:
-
User Copyright Findings
- Exposed 5 new endpoints to enable User Copyright operations in the REST API:
/uploads/{id}/item/{itemId}/user-copyrightsto retrieve user copyright findings./uploads/{id}/item/{itemId}/user-copyrights/{hash}to deactivate user copyright findings./uploads/{id}/item/{itemId}/user-copyrights/{hash}to restore deactivated user copyright findings./uploads/{id}/item/{itemId}/user-copyrights/{hash}to update user copyright findings./uploads/{id}/item/{itemId}/totalusercopyrightsto get the count of user copyright findings.
- Uplink PR: feat(api): New endpoints to get/delete/restore/update user copyright findings
- Exposed 5 new endpoints to enable User Copyright operations in the REST API:
-
OAuth 2.0 Authorization Code Flow
- Created the complete OAuth 2.0 Authorization Code Flow for the new UI.
- Exposed the following endpoints to enable the mechanism:
/oauth/loginto get the authorization redirect URL from the server./oauth/callbackto exchange the authorization code for an access token.
- Below is how the flow works:
- Frontend will hit the
/oauth/loginendpoint to get the authorization URL and will be redirected to the authorization URL for the user to log in. - User will log in and authorize the client application, and they will be redirected back to the frontend with an authorization code and a state (to prevent CSRF attacks).
- Frontend will hit the
/oauth/callbackendpoint with the authorization code and state to get the access token. The access token will be stored in the frontend and will be used to access the FOSSology API.- The authorization code will be exchanged for an access token by the FOSSology server using the configs.
- This token will be decoded, and the user will be authenticated if they have the same
client idadded in their active clients. - The drawback with this is the the user needs to know the client id to access the API.
- Frontend will hit the
- Made a client side application OAuthFossy to test the flow.
- Uplink PR: feat(oauth): Added Authorization Code Grant OAuth functionality
Screenshots
-
One Shot Analysis
- POST
/uploads/oneshot/nomosto run a Nomos scan on the uploaded file.
- POST
/uploads/oneshot/monkto run a Monk scan on the uploaded file.
- POST
/uploads/oneshot/ceuto run Copyright, Email and URL scan on the uploaded file.
- POST
-
User Copyright Findings
- GET
/uploads/{id}/item/{itemId}/user-copyrightsto retrieve user copyright findings.
- DELETE
/uploads/{id}/item/{itemId}/user-copyrights/{hash}to deactivate user copyright findings.
- PATCH
/uploads/{id}/item/{itemId}/user-copyrights/{hash}to restore deactivated user copyright findings.
- PUT
/uploads/{id}/item/{itemId}/user-copyrights/{hash}to update user copyright findings.
- GET
/uploads/{id}/item/{itemId}/totalusercopyrightsto get the count of user copyright findings.
- GET
-
OAuth 2.0 Authorization Code Flow
- GET
/oauth/loginto get the authorization redirect URL from the server.
- POST
/oauth/callbackto exchange the authorization code for an access token.
- GET