Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Welcome to the Config Proxy application

The goal of this application is to proxy Jira API calls from a calling client. These calls surface a discrete set of endpoints and call using a specific service account.

In addition to proxying these specific calls we want to create an endpoint on our proxy that fetches a specific ticket and then makes a subsequent API call based upon the data in that ticket, returning that payload back to the calling client.

Requirement:

  • node.js only
  • Validate a calling user's credentials for all inbound calls. This can be done by first calling to the "myself" endpoint at /rest/api/2/myself
  • Restrict calling user's capabilities to a discrete, configurable set of Jira endpoints
  • Create an endpoint called /api/getConfig that
    • Retrieves a Jira ticket with the following criteria:
      • Type: Configuration
      • Status: Open
      • Name: App Config
    • parses JSON in the description field
    • Calls the screens tabs endpoint for tabs at /rest/api/2/screens/{screenId}/tabs for each screen Id found in the ticket payload
    • Iterates through the tabs and calls the screens tabs endpoint for fields at /rest/api/2/screens/{screenId}/tabs/{tabId}/fields
    • Returns an aggregate payload of the screens with their tabs & fields to the calling user
    • Errors from any step in the process should be returned to the user as HTTP 500 level responses
  • No UI is required
  • Unit tests are required for this application

Configuration ticket payload:

{
  "configuration":
  { 
    "screenId": "10105", 
    "issueType":"1" 
  }
}

 



Final Submission Guidelines

SETUP:

  • Request access to the Gitlab repo group here by posting on the forums or email lazybaer.
  • Once added to the team, fork the repository and work off this branch.
  • Test user accounts and a test Jira endpoint can be found here

SUBMISSION:

  • Upload documentation for how to run your submission
  • Upload all your source code as a zip
  • Add lazybaer as members of your forked repository
  • Provide a video overview of your submission
  • Winner will be requried to submit a merge request on gitlab against the branch specified

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30051767