Challenge Overview
Topcoder is starting using Looker to do query works, which aims to replace the old query tool. But it is inconvient to run the looks (queries) through the looker pages.
Fortunately, Looker.com provides API for usage. So for this challenge, we'd like to create a wrapper service which will do
1. Do JWT Authentication, and checks if the user has the configured roles (reading from configuration) to do operations against Looker apis.
1. Authenticate and reauthenticate against Looker APIs (the access token will be expired in period time)
2. Run the looks to get the result.
Please check Looker API 3.0 Reference for general understanding.
General Requirements
1. Use ApiAuth : API Authentication to get the access token and expiration time. A sample valid response is like
{
"access_token": "CcMSM87vrXrZ3KPVF5CbBw7ZDsF9J8G3h4KbtCWz",
"token_type": "Bearer",
"expires_in": 3600
}
2. Then call the Run a Look to get the result, a sample look (126) is created for testing.
3. For configurations, it should be read from configuration file and possiblly overwrite from environment variables.
4. Please document the specific API in swagger.yaml file.
Implementation Reference
Please check tc-project-service for general design for implementation, like JWT authentication. the related source code is attached in forum. Please avoid copy and paste usage, make the codebase clean without anything not needed.
What To Keep In Mind
the purpose for this wrap service is that we want to leverage on Looker API and run queries (looks) easily in our internal system.
So when you are implementing the wrapper service, please make sure
1. We can easily add new apis for running specific look, like use the general API above.
2. We can easily add apis to use other Looker apis, like list all existing looks setup, create new looks etc.
- Deployment and Verification Steps
Fortunately, Looker.com provides API for usage. So for this challenge, we'd like to create a wrapper service which will do
1. Do JWT Authentication, and checks if the user has the configured roles (reading from configuration) to do operations against Looker apis.
1. Authenticate and reauthenticate against Looker APIs (the access token will be expired in period time)
2. Run the looks to get the result.
Please check Looker API 3.0 Reference for general understanding.
General Requirements
1. Use ApiAuth : API Authentication to get the access token and expiration time. A sample valid response is like
{
"access_token": "CcMSM87vrXrZ3KPVF5CbBw7ZDsF9J8G3h4KbtCWz",
"token_type": "Bearer",
"expires_in": 3600
}
2. Then call the Run a Look to get the result, a sample look (126) is created for testing.
3. For configurations, it should be read from configuration file and possiblly overwrite from environment variables.
4. Please document the specific API in swagger.yaml file.
Implementation Reference
Please check tc-project-service for general design for implementation, like JWT authentication. the related source code is attached in forum. Please avoid copy and paste usage, make the codebase clean without anything not needed.
What To Keep In Mind
the purpose for this wrap service is that we want to leverage on Looker API and run queries (looks) easily in our internal system.
So when you are implementing the wrapper service, please make sure
1. We can easily add new apis for running specific look, like use the general API above.
2. We can easily add apis to use other Looker apis, like list all existing looks setup, create new looks etc.
Final Submission Guidelines
- Source Code For Wrapper Service- Deployment and Verification Steps